【问题标题】:How do I change a sprite based on it's direction or movement in Unity?如何根据 Unity 中的方向或运动来更改精灵?
【发布时间】:2021-09-17 18:41:18
【问题描述】:

我正在制作一个 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-studio unity3d 2d


【解决方案1】:

您可以访问gameObject 上的SpriteRenderer 组件来更改玩家的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;
    }
}

【讨论】:

    猜你喜欢
    • 2017-04-28
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多