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

oknrviil  于 2023-05-01  发布在  C#
关注(0)|答案(2)|浏览(487)

我刚刚面对了一个令人费解的问题-我不能在脚本中改变精灵渲染器的精灵。

public Sprite jump_image;

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

此方法通过单击按钮进行调用。
代码的任何部分都不会影响上面的代码。
这个脚本完全附加在gameObject上。
jump_sprite附加的图像与SpriteRenderer。
我在谷歌搜索这个问题,我发现,没有帮助我.
我该如何解决这个问题?任何提示都会帮助我。

6pp0gazn

6pp0gazn1#

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

public Sprite jump_image;

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

lzfw57am2#

据我所知,你试图改变这个游戏对象精灵-〉跳转图像当点击一个按钮。

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

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

   }
  • 然后你必须在你的按钮上添加一个新的OnClick事件
  • 添加你想要改变它的精灵的游戏对象,方法是将它拖到接受游戏对象的盒子中
  • 点击下拉菜单,查找具有上面函数的类,确保该函数是公共的
  • 找到一个名为ChangeSprite()的函数并单击它

希望这能回答你的问题

相关问题