Scanvenger游戏制作笔记控制玩家操作
Posted Lmz_0314
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scanvenger游戏制作笔记控制玩家操作相关的知识,希望对你有一定的参考价值。
Scanvenger游戏制作笔记(二)控制玩家操作
前言
本文章是我学习SIKI学院Scanvenger项目所做笔记,原视频请自行搜索,
材质等相关资源请微信搜索SIKI学院公众号,回复120获取。源码也在里面。
游戏引擎:Unity3D2020.3
之前的Prefabs内容请提取源码中的prefabs
一、创建一个Rigidbody2D
因为不需要重力,所以选择
二、再创建一个刚体2D BOX Coliider2D,检测碰撞
设置Size为 0.9 ,0.9,保证相邻的两个格子不会发生碰撞
三、创建脚本
public class Player : MonoBehaviour
// Start is called before the first frame update
public float smoothing = 1; // 移动平滑度
public float restTime = 1; // 休息时间,保证不会一直移动
public float restTimer = 0; // 计时器
// 当前位置
private Vector2 targetPos = new Vector2(1, 1);
// 得到刚体
private Rigidbody2D rigidbody;
void Start()
rigidbody = GetComponent<Rigidbody2D>();
// Update is called once per frame
void Update()
// 控制刚体移动
// vector2.lerp(初始位置,目标位置,移动速度)
rigidbody.MovePosition(Vector2.Lerp(transform.position, targetPos, smoothing * Time.deltaTime));
restTimer += Time.deltaTime;
if (restTimer < restTime) return; // 如果移动时间大于休息时间,则不会移动
float h = Input.GetAxisRaw("Horizontal"); // 上下移动
float v = Input.GetAxisRaw("Vertical"); // 水平移动
// 保证同时只能向上下移动或者向左右移动
if (h > 0)
v = 0;
if(h != 0 || v!= 0) // 当移动后才会出现休息时间
targetPos += new Vector2(h, v);
restTimer = 0; // 重新计时
四、修改玩家的移动平滑度和休息时间
最终我将smoothing设置为100,,restTime设置为1
系列链接
Scanvenger游戏制作笔记(一)Unity3D状态机转换
Scanvenger游戏制作笔记(二)控制玩家操作
Scanvenger游戏制作笔记(三)Unity3D创建对墙体的攻击
Scanvenger游戏制作笔记(四)Unity3D控制角色吃食物
Scanvenger游戏制作笔记(五)控制敌人的移动
Scanvenger游戏制作笔记(六)Unity3D创建游戏UI的显示
Scanvenger游戏制作笔记(七)Unity3D控制游戏的失败
Scanvenger游戏制作笔记(八)Unity3D关卡胜利条件的判断
Scanvenger游戏制作笔记(九)Unity3D创建声音
以上是关于Scanvenger游戏制作笔记控制玩家操作的主要内容,如果未能解决你的问题,请参考以下文章
Scanvenger游戏制作笔记Unity3D控制游戏的失败
Scanvenger游戏制作笔记Unity3D控制角色吃食物