首页 > 解决方案 > 如何根据 Unity 中的方向或运动来更改精灵?

问题描述

我正在制作一个 2D 平台游戏,并想知道如何在 Unity 中对运动进行尖顶更改。我是编码新手,Unity 并从教程中获得了这个脚本。有人可以给我这个问题的答案并解释一下吗?

using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    [SerializeField] private float speed;
    private Rigidbody2D body;

    private void Awake()
    {
        body = GetComponent<Rigidbody2D>();
    }

    private void Update()
    {
        body.velocity = new Vector2(Input.GetAxis("Horizontal") * speed, body.velocity.y);

        if (Input.GetKey(KeyCode.Space))
            body.velocity = new Vector2(body.velocity.x, speed);
    }
}

标签: c#visual-studiounity3d2d

解决方案


您可以访问 上的SpriteRenderer组件gameObject来更改 Player 的 Sprite。

以下是它在您的代码中的样子:

using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    [SerializeField] private float speed;
    [SerializeField] private Sprite newSprite;
    private Rigidbody2D body;
    private SpriteRenderer spRenderer;

    private void Awake()
    {
        body = GetComponent<Rigidbody2D>();
        spRenderer= GetComponent<SpriteRenderer>();
    }

    private void Update()
    {
        body.velocity = new Vector2(Input.GetAxis("Horizontal") * speed, body.velocity.y);

        if (Input.GetKey(KeyCode.Space))
            body.velocity = new Vector2(body.velocity.x, speed);
        
        //Change sprite 
        spRenderer.sprite = newSprite;
    }
}

推荐阅读