1.创建一个地面(plane)

点击unity导航栏上的GameObeject,选择3D Obejct,再选择plane就可以创建一个地面。

2.创建一个立方体(cube)用来代替玩家(player)

2.1 创建立方体

点击unity导航栏上的GameObeject,选择3D Obejct,再选择cube就可以创建一个立方体。

 2.2  赋予立方体属性

赋予立方体刚体(rigidbody)属性,使得立方体具有重力、碰撞等一般物理特性。

点击Hierarchy中之前创建的cube,再点击inspector中的Add component 搜索 Rigidbody即可添加成功。

其默认有重力。

 

 2.3 通过脚本使得立方体移动

unity中控制物体移动的原理为通过代码(脚本),改变物体的Transform属性

Position代表物体的三维位置,Rotation代表物体的旋转角度,Scale代表物体的缩放程度

2.3.1 创建脚本文件

在Assets中新建一个文件夹Scripts。(在Assets中点击鼠标右键,点击create,再点击folder)

 

 在Scripts中点击鼠标右键,点击create,再点击C# Scripts

2.3.2 脚本文件实现

点击创建好的move文件。
using System.Collections; using System.Collections.Generic; using UnityEngine;
// 注意此处Move需要与你的脚本名称对应 public class Move : MonoBehaviour { // 控制物体的移动速度 public
float moveSpeed = 5f; Vector3 moveAmount; // 刚体属性 Rigidbody rb; // 在开始的一帧执行的函数
void Start() { // 获取当前物体的刚体属性 rb = GetComponent<Rigidbody>(); } // 刷新的每一帧执行的函数
void Update() { // 监听鼠标事件 Vector3 moveDir = new
Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")).normalized;
// 移动距离 = 移动方向 * 移动速度 * 每一帧时间 moveAmount = moveDir * moveSpeed *
Time.deltaTime; } private void FixedUpdate() { // 物体移动
rb.MovePosition(rb.position + moveAmount); } }
Horizontal 和 Vertical 的设置地点:Edit下的ProjectSetting

2.3.3 脚本文件的挂载

点击cube,再点击Add Component,搜素脚本名称Move即可。

 

 2.4 物体的旋转与跳跃

脚本文件如下:
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class Move : MonoBehaviour { public float moveSpeed = 5f; // 控制旋转速度
public float rotateSpeed = 5f; // 控制跳跃高度 public float jumpSpeed = 8f; Vector3
moveAmount; Rigidbody rb; void Start() { rb = GetComponent<Rigidbody>(); } void
Update() { Vector3 moveDir = new Vector3(Input.GetAxis("Horizontal"), 0,
Input.GetAxis("Vertical")).normalized; moveAmount = moveDir * moveSpeed *
Time.deltaTime; // 获取旋转方向 Vector3 targetDir = Vector3.Slerp(transform.forward,
moveDir, rotateSpeed * Time.deltaTime); // 实现旋转 transform.rotation =
Quaternion.LookRotation(targetDir); // 实现按键跳跃 if (Input.GetButton("Jump")) {
transform.Translate(Vector3.up * Time.deltaTime * jumpSpeed); } } private void
FixedUpdate() { rb.MovePosition(rb.position + moveAmount); } }

技术
友情链接
码工具
Toolsou
API参考文档
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:766591547
关注微信