如何在Unity C#中更改SpriteRenderer的Sprite?

问题描述 投票:0回答:3

我刚刚遇到了一个奇怪的问题 - 我无法在脚本中更改 SpriteRenderer 的精灵。

public Sprite jump_image;

public void Jump()
(
    gameObject.GetComponent<SpriteRenderer>().sprite = jump_image;
)

该方法是通过点击按钮来调用的。

代码的任何部分都不影响上面的代码。
该脚本绝对附加到游戏对象。
使用 SpriteRenderer 到

jump_sprite
附加图像。

我在谷歌中搜索了这个问题,但我发现的内容对我没有帮助。
我该如何解决这个问题?任何提示都会帮助我。

c# unity-game-engine
3个回答
2
投票

您的代码应该可以正常工作。但是,如果您尝试在函数之外更改脚本中的精灵,则它可能无法正常工作。将精灵更改代码移至 Awake 或 Start 方法中。或者确保在Unity Inspector中将jump_image变量分配给适当的精灵。如果没有分配,当你运行代码时精灵不会改变。

public Sprite jump_image;

void Start()
{
    gameObject.GetComponent<SpriteRenderer>().sprite = jump_image;
}

0
投票

据我了解,您试图在单击按钮时将此游戏对象精灵更改为 -> jump_image

   public void ChangeSprite(){ // This is a method to change sprite


   gameObject.GetComponent<SpriteRenderer>().sprite = jump_image;

   }
  • 然后你必须在按钮上添加一个新的 OnClick 事件

  • 添加您想要更改其精灵的游戏对象,方法是将其拖动到需要游戏对象的框

  • 点击下拉菜单找到具有上述功能的类 确保该函数是公开的

  • 找到一个名为 ChangeSprite() 的函数并单击它

希望能解答您的问题


0
投票

我现在也遇到了同样的问题。

尝试将你的精灵定义为 UnityEngine.Sprite。

这可能有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.