Loading... **代码控制角色移动旋转和碰撞、条件触发。** ## **用键盘控制方块 前后左右移动:** 1、Hierarchy – 3D Object – Cube (创建方块) 2、Cube – Componet – Physics -Rigidbody (给方块赋值刚体) 3、Cube – Inspector – Add Componet – New Script – Name:Move – Create and Add (给方块创建脚本命名 Move) 4、Cube – Inspector – Script Move – 点击齿轮 – Edit Script – 弹出 Microsoft Visual Studio(在名为 Move.cs 文件编写方块的脚本) 5、填写以下代码: ``` using System.Collections; using System.Collections.Generic; using UnityEngine; public class Move : MonoBehaviour { private Rigidbody qt; // 定义私有物体变量名为 qt public float speed; //把移动速读设置公共变量前台可以控制 void Start() { qt = GetComponent<Rigidbody>(); // 获取物体赋值给 qt } void FixedUpdate() { float horiInput = Input.GetAxis("Horizontal"); //x轴 左右A、D控制 float vertiInput = Input.GetAxis("Vertical"); // y轴 前后W、S控制 Vector3 movement = new Vector3(horiInput, 0, vertiInput); //前后左右移动赋值 锁定上下 qt.AddForce(movement * speed); //定义移动速读 } } ``` 6、在 Microsoft Visual Studio 写完脚本 Ctrl+S 保存 关闭 7、回到 Unity3D Ctrl + P 运行查看效果 --- ## **摄像机跟随球体一块移动:** 1、Hierarchy – Camera 2、Camera – Inspector – Script CameraCtrl – 点击齿轮 – Edit Script – 弹出 Microsoft Visual Studio(在名为 CameraCtrl.cs 文件编写方块的脚本) 3、填写以下代码 ``` using System.Collections; using System.Collections.Generic; using UnityEngine; public class Camera : MonoBehaviour { public GameObject sphere; private Vector3 offset; void Start() { offset = transform.position - sphere.transform.position ; } void LateUpdate () { transform.position = sphere.transform.position + offset; } } ``` 4、在 Microsoft Visual Studio 写完脚本 Ctrl+S 保存 关闭 5、Camera – Inspector – Script (把要跟随的物体拖到定义的公共变量Sphere上) 6、回到 Unity3D Ctrl + P 运行查看效果 --- ## **转动物体:** 1、Hierarchy – 3D Object – Cube (创建方块) 2、Cube – Inspector – Add Componet – New Script – Name:Zd 3、Cube – Inspector – Script Move – 点击齿轮 – Edit Script – 弹出 Microsoft Visual Studio(在名为 Zd.cs 文件编写方块的脚本) 4、填写以下代码: ``` using System.Collections; using System.Collections.Generic; using UnityEngine; public class zhuan : MonoBehaviour { public Vector3 rot; //定义公共变量前台控制数值 void Update () { transform.Rotate(rot); //转动数值 x,y,z } } ``` 5、在 Microsoft Visual Studio 写完脚本 Ctrl+S 保存 关闭 6、回到 Unity3D Ctrl + P 运行查看效果 --- ## **碰撞物体消失:** 1、球碰撞方块消失 2、在球的脚本填写以下代码: ``` private void OnTriggerEnter(Collider other) { other.gameObject.SetActive(false); } ``` 3、在方块的 Inspector – Box Collider – 选中 Is Trigger 4、Ctrl + P 运行查看效果 --- ## **物体碰撞计数:** 1、Hierarchy – UI -Text (创建计数标签) 2、Hierarchy – Canvas – Text – Inspector – 改名为 contText 调整好显示位置 3、在控制物体添加以下代码: ``` using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; //调用UI private int count; // 定义计数变量 public Text contText; //关联计数标签 void Start() { count = 0; //初始值为0 contText.text = "Num" + count; //计数加赋值 } private void OnTriggerEnter(Collider other) { other.gameObject.SetActive(false); count++; contText.text = "Num" + count; } } ``` 4、把标签拖到控制物体的定义的ContText 变量内 5、Ctrl + P 运行查看效果 --- ## **数值触发:** 1、计数大于3显示标签 2、代码如下 ``` using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; //调用UI public class Move : MonoBehaviour { public Text win; void Start() { win.text = ""; } private void OnTriggerEnter(Collider other) { if (count > 2) { win.text = "You Win"; } } } ``` 发布 1、Ctrl+Shift+B – Bulid Settings – Bulid 2、选好文件命名即可发布 最后修改:2024 年 10 月 07 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏