移动:
首先证明物体:
GameObject 变量名;
变量名 . transform . position = new Vector3(X,Y,Z);
变量名 . transform . Translate(X,Y,Z);
或:
变量名 . transform . Translate(new Vector3(X,Y,Z));
//参数还可以写 方向 X 速度 X 秒
变量名 . transform . Translate(transform . up * 10 * Time . deltaTime);
给力移动 :(一般配合按键使用。脚本托给谁谁动)
需要先声明Rigidbody,然后获取Rigidbody组件后可用:
private Rigidbody rigidbody;
rigidbody = GetComponent<Rigidbody>();
rigidbody . AddForce(X,Y,Z); //世界坐标中给力移动
rigidbody . AddRelativeForce(X,Y,Z); //局部坐标中移动
可能会配合速度使用,那么速度就是:
rigidbody.Veloctiy = new Vector3(X,Y,Z);
eg:
//以每秒十米的速度向前移动
rigidbody.Veloctiy = transform.forward * 10;
----------------------------------------------------------------
这里的10是 10米/秒 ,所以不用*Time.deltaTime。
加入这里的物体是球,那么给力移动时可能会滚动,如果不想让其滚动,可以将Rigidbody组件中的XYZ的rotation锁定。
旋转:
变量名 . transform . rotation = new Quaternion(X,Y,Z,W);
// 围绕Y轴旋转,每秒20度(自传)
transform . Rotate(transform . up * 20 * Time . deltaTime);
//绕着某个点旋转(公转)
transform . RotateAround(Vector3 . zero,Vector3 . up,30 * Time . deltaTime);
给力旋转:(同样,一般也是配合按键使用)
需要先声明Rigidbody,然后获取Rigidbody组件后可用:
Rigidbody rigidbody;
rigidbody = gameobject . GetComponent<Rigidbody>();
rigidbody.AddTorque(X,Y,Z); //世界坐标中给力旋转
rigidbody . AddRelativeTorque(X,Y,Z); //局部坐标中旋转
缩放 :
变量名 . transform . localScale = new Vector3(X,Y,Z); //局部缩放,可读可写
Debug.Log(变量名 . transform . lossyScale); //世界缩放,只读