嗨,我正在创建一个 2D 无尽的跑步者。背景有2个动画 - 滚动和停止滚动当角色碰撞和死亡时我想做以下
- 启用死亡动画 - 这正在发生
- 停止计时器 - 如果我这样做,所有动画都会停止
- 停止背景滚动 - 虽然它发生在死亡动画完成之前并跳回第一帧,但这种情况正在发生。我希望背景相对于角色死亡的地方停止。
- 销毁角色 - 这正在发生,但在动画完成之前。我想我需要使用协程但不知道怎么做?
请帮忙!
这是我建议的更新代码
void OnCollisionEnter2D(Collision2D other)
{
if (other.gameObject.name == "Obstacle(Clone)")
{
StartCoroutine (DoMyThings(other.gameObject, this.gameObject, false));
}
}
IEnumerator DoMyThings(GameObject obstacle, GameObject player, bool ninjaObjBool)
{
ninjaObj = ninjaObjBool;
Destroy (obstacle);
animator.SetBool("dead", true);
yield return new WaitForSeconds(1.2f);
Destroy (player);
Time.timeScale=0;
//timerIsStopped = true;
yield break;
}
背景动画 我复制了一个背景精灵并将它们并排对齐。RHS sprite 是层次结构中 LHS sprite 的子代。然后我点击 LHS bg sprite -> windows->Animation。使用添加曲线在 X 轴上变换背景,使其无限移动。