【Unity】Transform—游戏物体的角度和旋转

一、角度相关

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson7 : MonoBehaviour
{
    void Start()
    {
        //相对世界坐标的角度
        //想要得到Inspector面板上显示的角度,并非使用transform.rotation,而是transform.eulerAngles
        print(this.transform.eulerAngles);
        //相对父对象的角度
        print(this.transform.localEulerAngles);

        //注意:1.同位置一样,角度也无法单独对x、y、z其中一个值进行修改,只能使用Vector3进行整体修改
        //     2.通过欧拉角得到的角度 不会出现负数,虽然Inspector显示出了负数,但是 通过此代码得到的欧拉角 始终 都是0~360
    }
}

二、旋转相关

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson7 : MonoBehaviour
{
    void Update()
    {
        //自己手动计算:省略,和位置的计算差不多,不停改变角度即可

        //用API计算
        //1.自转
        //参数1 旋转的角度 和 旋转的速度
        //参数2 相对哪个坐标系旋转(默认不填 就是相对于自己的坐标系进行旋转)
        this.transform.Rotate(new Vector3(0, 5, 0) * Time.deltaTime, Space.World);

        //补充:另外一种写法
        //相对于某个轴转
        //参数1 相对于哪个轴旋转
        //参数2 旋转的角度 和 旋转的速度
        //参数3 相对哪个坐标系旋转(默认不填 就是相对于自己的坐标系进行旋转)
        this.transform.Rotate(Vector3.right, 10 * Time.deltaTime, Space.World);

        //2.相对于某一个点旋转
        //参数1 先对于哪个点旋转
        //参数2 相对于参数1的那个点 的 哪一个轴旋转
        //参数3 旋转的角度 和 旋转的速度
        //这样写 就是相对于(0, 0, 0)点 的 y轴 进行旋转
        this.transform.RotateAround(Vector3.zero, Vector3.up, 50 * Time.deltaTime);
    }
}

image

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值