Unity3D基础10:利用Transform组件移动物体 您所在的位置:网站首页 unity怎么移动物体的中心点 Unity3D基础10:利用Transform组件移动物体

Unity3D基础10:利用Transform组件移动物体

2023-11-29 06:50| 来源: 网络整理| 查看: 265

 

前文: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 实验室设备网 版权所有