一、游戏开始时对象的变换
//当前游戏对象的世界坐标
//Debug.Log(transform.position);
//当前游戏对象相对于父物体的游戏坐标【本地坐标】
Debug.Log(transform.localPosition);
//当前游戏对象的世界旋转
Debug.Log(transform.eulerAngles);
//当前游戏对象相对于父物体的游戏旋转【本地旋转】
Debug.Log(transform.localEulerAngles);
//当前游戏对象的世界旋转[四元数]
Debug.Log(transform.rotation);
//当前游戏对象相对于父物体的游戏旋转【四元数】
Debug.Log(transform.localRotation);
//当前游戏对象的世界缩放
Debug.Log(transform.localScale);
//位置移动方法
transform.Translate(new Vector3(3, 0, 0));
二、.游戏进行中对象的变换
1.游戏对象朝着一个方向进行持续前进
以持续向右边每秒移动0.3f,以下有两种方法来执行
//持续向右边每秒移动0.3f
transform.Translate(new Vector3(0.05f,0,0));
transform.position += new Vector3(0, 0, 0.03f);
如果需要选择其他位置的,只需要在Vector3内根据您的需求修改x,y,z的值即可,其中x,y,z为float类型,需要在数字后面添加f。
2.游戏对象的旋转,分为两个部分,一个部分是游戏对象自转,一个部分是一个游戏对象环绕着另外一个游戏对象进行旋转。
2.1自转,(分别采用两种方法执行)案例代码如下
//旋转【自转】
transform.Rotate(new Vector3(1, 0, 0)); //方法一
transform.eulerAngles += new Vector3(2, 0, 0); //方法二
2.2旋转【绕转】代码如下
transform.RotateAround(new Vector3(1, 0, 0),new Vector3(0,1,0), rotateSpeed);
其中在RotateAround中第一个是该游戏对象的环绕的点,第二个是游戏对象环绕着轴,第三个是绕转的度数
3.让当前对象朝自己的角度方位移动,自身前方的方向向量
该案例是沿着向上的方向移动,需要其他方向的可以进行修改
把transform.up改成.forwalk即向前/.right即向右
自身前方的方向向量
transform.position += transform.up * 0.02f*moveSpeef; //方法一
transform.position += transform.up * 0.02f * moveSpeef; //方法二
4.让当前对象看向某个目标[球]
transform.LookAt(ball.transform.position);
ball为在脚本中创建的一个对象名,该案例中可实现在脚本运行中,通过移动ball,当前对象会跟着ball的移动而旋转。
以上是小编在学习过程中总结出来的一些通过Transform使游戏对象发生变换的方法。还有补充与不足请留言讨论,虚心请教。如果能够帮助的到您也请留个小赞。