unity 3D简易角色控制器

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、相机位置的调整

可能在运行时我们看不到效果那就调整相机位置吧。调整属性如下就好啦

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值