Unity3D基础10:利用Transform组件移动物体 | 您所在的位置:网站首页 › unity怎么移动物体的中心点 › Unity3D基础10:利用Transform组件移动物体 |
前文:https://blog.csdn.net/Jaihk662/article/details/86750789(Transform组件) https://blog.csdn.net/Jaihk662/article/details/86751535(获取鼠标键盘输入) PS:注释和讲解部分在代码中 一、利用Transform组件移动物体脚本程序步骤: ①实例化Transform对象,并通过 gameObject.GetComponent () 获取相应对象的引用 ②利用 Transform.Translate(Vector3, Space) 方法移动物体的位置,函数含义:游戏物体以"Space"坐标系往Vector3方向移动 相关参数: Vector3.xxx:结构体;用来表示向量,例如:vector3.forward:向前方移动1m,vector3.forward*0.5:向前方移动50cm Space.xxx:枚举类;Space.Self 表示物体自身的坐标系,Space.World 表示物体所在的世界坐标系 备注:脚本是游戏物体的一部分,一般控制谁的脚本就挂载在谁的身上
(图片引用于擅码网) 二、利用'W', 'A', 'S', 'D'移动物体 了解上面的API后,就很容易解决这个问题了 新建C#脚本,代码如下: using System.Collections; using System.Collections.Generic; using UnityEngine; public class Text1: MonoBehaviour { //因为Start()只会在开始游戏时被执行一次,所以一般都用来初始化 private Transform myTransform; //实例化Transform对象 void Start() { Debug.Log("Start"); //输出调试 myTransform = gameObject.GetComponent (); //获取相应对象的引用 } // Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.W)) { Debug.Log("W键按下,向前移动"); myTransform.Translate(Vector3.forward, Space.Self); } if (Input.GetKeyDown(KeyCode.A)) { Debug.Log("A键按下,向左移动"); myTransform.Translate(Vector3.left, Space.Self); } if (Input.GetKeyDown(KeyCode.S)) { Debug.Log("S键按下,向后移动"); myTransform.Translate(Vector3.back, Space.Self); } if (Input.GetKeyDown(KeyCode.D)) { Debug.Log("D键按下,向右移动"); myTransform.Translate(Vector3.right, Space.Self); } } }将其拖到对应的物体上即可,效果如下:
|
CopyRight 2018-2019 实验室设备网 版权所有 |