赞
踩
脚本文件的名称必须和C#脚本的名称相同
Transform组件可以获得并修改 游戏物体的transform栏的信息
即位置,旋转,缩放
例如:
//this表示当前游戏物体,即脚本挂在什么物体上,this就指向该物体
Debug.Log(this.transform.position.x); //世界坐标X的值
Debug.Log(this.transform.localPosition.x); //父类坐标X的值
Debug.Log(this.transform.rotation.x); //世界旋转X的值
Debug.Log(this.transform.localRotation.x); //父类坐标旋转X的值
Debug.Log(this.transform.localScale.x); //父类坐标缩放X的值
Debug.Log(this.transform.lossyScale.x); //世界坐标缩放X的值
旋转主要通过Tranform组件下的Rotate和RotateAround来进行设置
Rotate的命名格式为:public void Rotate(Vector3 axis, float angle);
RotateAround的命名格式为:public void RotateAround(Vector3 point, Vector3 axis, float angle);
表示 3维向量数组,表示3D的向量和点。用于在Unity传递3D位置和方向。它也包含做些普通向量运算的函数。除了下面列出的函数,其他类用于处理向量和点。例如Quaternion(四元数)和Matrix4x4类用于旋转或变换向量和点。
自转:
transform.Rotate(Vector3.up, 0.5f); //绕着Y轴旋转,速度为0.5f
公转:
public GameObject target; //目标中心
public float speed = 0.5f; //旋转速度
void Update()
{
transform.RotateAround(target.transform.position, Vector3.forward, speed);
}
根据玩家所按下的 键进行相应的操作 以WSAD为例
Time.deltaTime(增量时间),若播放速度为1秒60帧,则增量时间为 1 / 60
if (Input.GetKey("w")) { tmpCube.transform.Translate(new Vector3(0.5f, 0, 0) * Time.deltaTime, Space.Self); //前进 (0.5f, 0, 0) * Time.deltaTime(增量时间) } if (Input.GetKey("s")) { tmpCube.transform.Translate(new Vector3(-0.5f, 0, 0) * Time.deltaTime, Space.Self); //后退 (-0.5f, 0, 0) * Time.deltaTime(增量时间) } if (Input.GetKey("a")) { this.transform.Rotate(new Vector3(0, -1, 0)); //旋转-1° } if (Input.GetKey("d")) { this.transform.Rotate(new Vector3(0, 1, 0)); //旋转1° }
利用鼠标控制旋转:
public float tmpX = 0f;
public float tmpY = 0f;
float x = Input.GetAxis("Mouse X");
float y = Input.GetAxis("Mouse Y");
tmpX = tmpX + x;
tmpY = tmpY + y;
this.transform.rotation = Quaternion.Euler(0, tmpX * speed, 0); //绕着Y轴旋转
转自:点击此处
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。