【发布时间】:2018-09-17 23:10:37
【问题描述】:
我有两个对象(相同的角色,但在不同的功能中),我想在动画停止和通过点击触发运行时更改角色。例如,我有Kick_Player,其中有点击触发的动画,当Kick_Player结束动画时,我希望它自动更改为Player_Stopped。姿势彼此不同,因为我需要做这些改变。
我用this.MyAnimator.GetCurrentAnimatorStateInfo(0).IsName("My_Animation") 尝试了一些东西,但是我没有成功。有没有办法做到这一点?
public class TapController : MonoBehaviour {
Animator Anim;
public GameObject CharacterToController; //Kick_Player
public GameObject CharacterToBeStopped; //Player_Stopped
void Start(){
Anim = CharacterToController.GetComponent<Animator>();
CharacterToBeStopped.SetActive(false);
}
void Update(){
if(input.GetMouseButtonDown(0)){
if(!CharacterToController.activeSelf){
CharacterToController.SetActive(true);
}
Anim.Play("Kick_Ball");
if(!this.Anim.GetCurrentAnimatorStateInfo(0).IsName("Kick_Ball") {
CharacterToController.SetActive(false);
CharacterToBeStopped.SetActive(true);
}
}
}
我做了这段代码来测试,但它不起作用
【问题讨论】:
-
My_Animation的值是多少?你能展示一下你是如何播放动画的吗? -
价值是什么意思?我运行了一个实例,之后,每个更新触发器,它运行动画。我将用我的代码更新问题
-
你说你试过
this.MyAnimator.GetCurrentAnimatorStateInfo(0).IsName("My_Animation")?我问你My_Animation的值。我的意思是你在那里使用的实际字符串。这很重要。我需要知道你在比较什么值。此外,您应该展示您正在播放或触发(在代码中)动画的方式 -
@Programmer 我更新了我的问题