1.细节要求
2.获取当前物体
最开始会继承一个MonoBehaviour类
void Start ()
{
Debug.Log("开始测试");
GameObject obj = this.gameObject;//获取当前物体
string name = obj.name;
Debug.Log("物体的名字是:" + name);
Transform tr = obj.transform;//获取当前物体的Transform组件
Vector3 pos = tr.position;
Debug.Log("物体的位置:" + pos.ToString("F3"));
}
3.物体的坐标
transform.position,世界坐标
transform.localPosition,本地坐标(一般用的比较多)
设置物体的坐标:
this.transform.localPosition = new Vector3(0, 2.5f, 0);
4.帧更新(fps帧率)
Update()方法
void Update () {
Debug.Log("时间是:" + Time.time);
Debug.Log("时间差:"+Time.deltaTime);
}
5.物体的移动
//匀速运动
float speed = 3;
float distance = speed * Time.deltaTime;
//让物体运动
//api方法实现
transform.Translate(distance,0,distance,Space.Self);
// Vector3 pos = this.transform.position;
//pos.x -= distance;//0.1f;
//this.transform.position = pos;
6.物体运动方向
朝某个物体所在方向转:
GameObject obj = GameObject.Find("Capsule");
this.transform.LookAt(obj.transform);//让物体z轴转向
7.求两个物体间的距离
GameObject obj = GameObject.Find("Capsule");
//计算距离
Vector3 p1 = obj.transform.position;
Vector3 p2 = this.transform.position;
Vector3 p = p1 - p2;
float distance1 = p.magnitude;
8.物体的旋转
void Update () {
float rotateSpeed = 1600;
Vector3 angles = this.transform.localEulerAngles;//欧拉角
angles.y += rotateSpeed* Time.deltaTime;
this.transform.localEulerAngles = angles;
}
this.transform.Rotate(0,rotateSpeed*Time.deltaTime,0,Space.Self);//api实现