我目前正在开发一个项目,在我的场景中实例化3d模型,并允许用户在按钮点击时播放他们的动画。但是,在我当前的代码中,它只播放它检测到的第一个对象的动画,即使周围还有其他对象。我想播放场景中所有对象的动画。这是我当前代码的一部分。这是单击按钮后将启动的方法。
public void PlayAnimation()
{
if (GameObject.FindGameObjectWithTag ("3DObject).name.Contains ("Spidey"))
{
int spideyAnimation = Random.Range(0, spideyAnimations.Length);
GameObject.FindGameObjectWithTag ("3DObject").GetComponent<Animation> ().Play (spideyAnimations[spideyAnimation]);
}
if (GameObject.FindGameObjectWithTag ("3DObject").name.Contains("Dino"))
{
int dinoAnimation = Random.Range(0, dinoAnimations.Length);
GameObject.FindGameObjectWithTag ("3DObject").GetComponent<Animation> ().Play (dinoAnimations[dinoAnimation]);
}
}
答案 0 :(得分:0)
您可以尝试这样的事情:
var arr = GameObject.FindGameObjectsWithTag ("3DObject");
foreach (var o in arr) {
if (o.name.Contains ("Spidey")) {
// play spideyAnimation
} else if (o.name.Contains ("Dino")) {
// play dino animation
}
}
答案 1 :(得分:0)
您当前的代码只会找到第一个对象,因为您正在调用GameObject.FindGameObjectWithTag而不是GameObject.FindGameObject s WithTag