所以我一直用c#和unity开发Hololens应用程序,并遇到了这个问题 .
我目前拥有的设置:GameObject预制件一旦实例化,就会自动播放动画 . 大约两个GameObjects每秒被实例化,最多约60个在被删除之前停留在场景中 .
我正在尝试做的事情:点击一下按钮,停止每个游戏对象上的所有动画 .
我尝试使用这些方法在预制件上创建一个脚本,但没有一个有效:
public void StopAnimation()
{
anim = gameObject.GetComponent<Animation>();
anim.Stop();
}
//also tried
public void StopAnimation()
{
gameObject.GetComponent<Animation>().Stop();
}
//and have even tried destroying the gameobject
public void StopAnimation(){
Destroy(gameObject);
}
2 回答
既然你没有在问题中提到脚本的名称,我会称之为
StopAnimationScript
实例化预制件时,需要从新创建的实例中获取
StopAnimationScript
组件 .那么你需要在某个地方存储这个引用,比如
List<StopAnimationScript>
按下按钮时,需要在每个实例上调用
StopAnimation
好的,所以我实际上只是想出来了,现在我发布给任何可能需要它的人 . 所以基本上我删除了预制件上的脚本,然后转到附加到Stop按钮的“StopAnimationButtonScript”,并在按下按钮时插入此代码:
然后转到克隆预制件,并在检查器面板中为其指定“Clone”标签或您自己的自定义标签,该标签位于对象名称的正下方 .
谢谢所有帮助过的人!