确定碰撞体积
选择rigidbody2d,创建player重力
创建player碰撞体积
创建瓦片地图碰撞体积
使平台变成一个整体
设置Body Type为Static(避免平台也因为重力影响下落)
回到Player,在Rigidbody2D中设置为冻结旋转
Player设置参考
Platform设置参考
我做的时候其实是有一点bug的,比如在设置碰撞体积的时候即使两个都有碰撞体积(平台和人物),也是会一直下坠的,结果后来发现原因是因为平台和人物位置设定的有问题。乍一看没什么,但是事实上人物的脚在平台的里面的位置,所以会一直掉下去。 修改一下位置即可。
使用Input System来监听用户输入
zsbd
添加PlayerController
添加
修改Configuration
windows->Packet Manager
创建配置文件
zbsd
zsbd
如果想要创建一套手柄的输入法
创建一个keyboard和gamepad
做完保存然后删除inputcontrols(没错 只是练习qvq)
使用Unity的Input Control来控制人物移动
选择create actions,将创建的文件存档Input System文件夹
PlayerController.cs
cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
public class PlayerController : MonoBehaviour
//继承在MonoBehavior类中
{
// Start is called before the first frame update
public PlayerInputControl inputControl;
public Vector2 inputDirection;//存储Vector2变量
private void Awake()
{
inputControl = new PlayerInputControl();
//实例化
}
private void OnEnable()
{
inputControl.Enable();
}
private void OnDisable()
{
inputControl.Disable();
}
private void Update()
{
inputDirection = inputControl.Gameplay.Move.ReadValue<Vector2>();
}
}