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/i8s1 著作权归作者所有。请勿转载和采集!