我刚刚遇到了一个奇怪的问题 - 我无法在脚本中更改 SpriteRenderer 的精灵。
public Sprite jump_image;
public void Jump()
(
gameObject.GetComponent<SpriteRenderer>().sprite = jump_image;
)
该方法是通过点击按钮来调用的。
代码的任何部分都不影响上面的代码。
该脚本绝对附加到游戏对象。
使用 SpriteRenderer 到
jump_sprite
附加图像。
我在谷歌中搜索了这个问题,但我发现的内容对我没有帮助。
我该如何解决这个问题?任何提示都会帮助我。
您的代码应该可以正常工作。但是,如果您尝试在函数之外更改脚本中的精灵,则它可能无法正常工作。将精灵更改代码移至 Awake 或 Start 方法中。或者确保在Unity Inspector中将jump_image变量分配给适当的精灵。如果没有分配,当你运行代码时精灵不会改变。
public Sprite jump_image;
void Start()
{
gameObject.GetComponent<SpriteRenderer>().sprite = jump_image;
}
据我了解,您试图在单击按钮时将此游戏对象精灵更改为 -> jump_image。
public void ChangeSprite(){ // This is a method to change sprite
gameObject.GetComponent<SpriteRenderer>().sprite = jump_image;
}
然后你必须在按钮上添加一个新的 OnClick 事件
添加您想要更改其精灵的游戏对象,方法是将其拖动到需要游戏对象的框
点击下拉菜单找到具有上述功能的类 确保该函数是公开的
找到一个名为 ChangeSprite() 的函数并单击它
希望能解答您的问题
我现在也遇到了同样的问题。
尝试将你的精灵定义为 UnityEngine.Sprite。
这可能有帮助。