Unity 2D 人物方向控制转向代码示例
在 Unity 中,可以使用以下代码来实现 2D 人物根据方向控制转向:
using UnityEngine;
public class CharacterController2D : MonoBehaviour
{
public float moveSpeed = 5f; // 移动速度
private Rigidbody2D rb;
private void Start()
{
rb = GetComponent<Rigidbody2D>();
}
private void Update()
{
float moveX = Input.GetAxis("Horizontal"); // 获取水平输入值
// 根据输入值设置人物的速度和朝向
if (Mathf.Abs(moveX) > 0.01f)
{
rb.velocity = new Vector2(moveX * moveSpeed, rb.velocity.y);
transform.localScale = new Vector3(Mathf.Sign(moveX), 1f, 1f);
}
else
{
rb.velocity = new Vector2(0f, rb.velocity.y);
}
}
}
在上面的代码中,我们首先获取水平输入值'moveX',然后根据'moveX'的值来设置人物的速度和朝向。
如果'moveX'的绝对值大于0.01f,说明有水平输入,我们就根据输入值设置人物的速度和朝向。将人物的速度设置为'moveX * moveSpeed',其中'moveSpeed'是移动速度。然后根据'moveX'的正负来设置人物的朝向,使用'Mathf.Sign(moveX)'获取'moveX'的符号,然后将人物的'transform.localScale.x'设置为这个符号值。这样,当'moveX'为正数时,人物朝右,当'moveX'为负数时,人物朝左。
如果'moveX'的绝对值小于等于0.01f,说明没有水平输入,我们将人物的水平速度设置为0,保持人物停止状态。
将上述代码添加到 2D 人物的控制脚本中,然后将该脚本挂载到 2D 人物的游戏对象上,即可实现人物根据方向控制转向。
原文地址: https://www.cveoy.top/t/topic/lK58 著作权归作者所有。请勿转载和采集!