1、预先工作 3D object的创建
首先我们创建一个地板吧
在场景鼠标点击右键,创建3D object,选择Plane,将它重命名为Floor并调整 transform至以下值
我们就得到一个大地板啦!
其次,同理鼠标右键创建一个Empty(Create Empty) 同样确保transform属性值中Position和Rotation (X=0,Y=0,Z=0),并把它重命名为Player,我们在Player里创建一个3D Capsule,这样就能得到Player的视觉效果。我们调整Capsule位置确保它处于Floor上方
好的到这里预先工作就大功告成!
2、C#脚本编辑
在这里我们将书写脚本控制咱这个Player,实现简单的上下左右移动。当然首先是对Player添加一个C#脚本,点击Add Component 输入New script ,这里将脚本文件命名为Move。我们就创建了一个脚本并绑定在了Player上啦
鼠标左键双击Move 进入 visual studio进行编辑
编辑一下代码就能进行简单的移动啦。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Move : MonoBehaviour
{
public float moveSpeed = 7f;//玩家的移动速度
//Update函数表示-游戏每帧都在运行
private void Update()
{
//创建一个inputVector来接受键盘输入WSAD指令,每当有WSAD键相应输入inputVector对应坐标改变
Vector2 inputVector = new Vector2(0,0);
if (Input.GetKey(KeyCode.W))
{
inputVector.y += 1;
}
if (Input.GetKey(KeyCode.S))
{
inputVector.y -= 1;
}
if (Input.GetKey(KeyCode.A))
{
inputVector.x -= 1;
}
if (Input.GetKey(KeyCode.D))
{
inputVector.x += 1;
}
//我们不希望在玩家的Z轴上移动所以新建一个moveDir,在Z轴上赋值为0
Vector3 moveDir = new Vector3(inputVector.x, 0f, inputVector.y);
transform.position += moveDir * Time.deltaTime * moveSpeed;//transform.position代表Player的位置.它有X,Y,Z三个值这里我们不考虑Y轴上的移动。//Time.deltaTime表示游戏每帧渲染所花的时间.
//确保Player在对角线上的移动速度一致所以normalized一下
inputVector = inputVector.normalized;
}
}
3、相机位置的调整
可能在运行时我们看不到效果那就调整相机位置吧。调整属性如下就好啦