我正在开发一个统一游戏,基本上,我有一个带有精灵的预制件。我创建了一个附加到该精灵的动画。
FrogPrefab
|__ FrogSprite
我创建了一个带有公共字段的脚本" prefab"我通过预制件的地方。
我的问题是,如何从我的剧本中停止并播放此动画。
我从我的开始方法中实例化了我的预制件......
public GameObject gameCharacterPrefab;
private GameObject frog;
void start() {
frog = (GameObject)Instantiate(gameCharacterPrefab, objectPoolPosition, Quaternion.identity);
}
我试图做那样的事情......
frog.animation.stop();
感谢任何帮助
答案 0 :(得分:2)
首先,请注意该函数应调用Start
而不是start
。也许这是问题中的错字,但值得一提。
使用GetComponent
获取Animator
或Animation
组件。如果动画是预制件的子节点,则使用GetComponentInChildren
。
如果使用Animator
组件:
public GameObject gameCharacterPrefab;
private GameObject frog;
Vector3 objectPoolPosition = Vector3.zero;
Animator anim;
实例化预制件
frog = (GameObject)Instantiate(gameCharacterPrefab, objectPoolPosition, Quaternion.identity);
获取Animator
组件
anim = frog.GetComponent<Animator>();
播放动画状态
anim.Play("AnimStateName");
停止动画
anim.StopPlayback();
如果使用Animation
组件:
public GameObject gameCharacterPrefab;
private GameObject frog;
Vector3 objectPoolPosition = Vector3.zero;
Animation anim;
实例化预制件
frog = (GameObject)Instantiate(gameCharacterPrefab, objectPoolPosition, Quaternion.identity);
获取Animation
组件
anim = frog.GetComponent<Animation>();
播放动画名称
anim.Play("AnimName");
停止动画
anim.Stop();
答案 1 :(得分:0)
对于播放动画,我们可以使用Play(),但是为了停止动画,在Unity 2019或更高版本中,Stop方法已过时。因此,对于禁用动画,我们可以使用enable标志并将其设置为false。
//For playing the animation
frog.GetComponent<Animator>().Play();
or
frog.GetComponent<Animator>().enable = true;
//For stop the animation
frog.GetComponent<Animator>().enabled = false;