在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人物的游戏对象上,即可实现人物根据方向控制转向。

unity中2D人物随着方向控制转向的代码

原文地址: https://www.cveoy.top/t/topic/i8s1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录