Animation Unity2d游戏拍摄和动画同步问题
我是Unity的新手,正在制作我的第一个2D游戏。我在本期的论坛上看到了几个主题,但我没有找到解决方案 所以我有一个可爱的射击动画和子弹一代。我的问题是,我必须在动画中间的某个地方生成子弹,但是角色同时射击子弹和动画,这会杀死UX:) 我附上了一张关于这个问题的图片,这是子弹应该初始化的时刻,但正如你所看到的,它已经在路上了 请查找我的代码: GameManager更新方法调用Attacknemy函数:Animation Unity2d游戏拍摄和动画同步问题,animation,unity3d,2d-games,Animation,Unity3d,2d Games,我是Unity的新手,正在制作我的第一个2D游戏。我在本期的论坛上看到了几个主题,但我没有找到解决方案 所以我有一个可爱的射击动画和子弹一代。我的问题是,我必须在动画中间的某个地方生成子弹,但是角色同时射击子弹和动画,这会杀死UX:) 我附上了一张关于这个问题的图片,这是子弹应该初始化的时刻,但正如你所看到的,它已经在路上了 请查找我的代码: GameManager更新方法调用Attacknemy函数: public void Awake(){ animator
public void Awake(){
animator = GetComponent ();
animator.SetTrigger ("enemyIdle");
}
//if the enemy pass this point, they stop shooting, and just go off the scren
private float shootingStopLimit = -6f;
public override void attackPlayer(){
//animator.SetTrigger ("enemyIdle");
if (!isAttacking && gameObject.transform.position.y > shootingStopLimit) {
isAttacking = true;
animator.SetTrigger("enemyShoot");
StartCoroutine(doWait());
gameObject.GetComponentInChildren ().fireBullet ();
StartCoroutine (Reload ());
}
}
private IEnumerator doWait(){
yield return new WaitForSeconds(5);
}
private IEnumerator Reload(){
animator.SetTrigger ("enemyIdle");
int reloadTime = Random.Range (4,7);
yield return new WaitForSeconds(reloadTime);
isAttacking = false;
}......
我的问题是:
-如何同步动画和子弹生成
- 为什么doWait()不起作用?:)
- 可以从GameManager更新调用attackPlayer方法吗
- 敌人从屏幕的右侧向左飞行,当他们到达屏幕的最右侧时,用户就可以看到他们。我不知道为什么,但他们先拍摄动画(没有子弹生成),然后才做空闲。知道为什么吗
我建议查看动画事件。使用动画事件,可以调用方法来实例化项目符号 要使用Mecanim动画事件,您需要在“编辑动画事件”窗口的“函数”区域中的选定帧中写入要调用的函数的名称 其他框用于任何要传递给该函数以触发所需内容的变量 不同动画之间的触发/混合可以通过许多不同的方式完成。事件区域更多用于您想要触发的与动画无关的其他内容(例如音频、粒子fx等)