【问题标题】:Timer Error in UnityUnity 中的计时器错误
【发布时间】:2014-10-18 17:33:48
【问题描述】:

大家好,我遇到了错误。一旦你击中触发器,我试图制作一个计时器来产生一个敌人。计时器倒计时,但我遇到了这个错误

控制不能从一个案例标签“案例“EnemyTrigger””转移到另一个。

代码如下:

 using UnityEngine;
 using System.Collections;

 public class SpawnManager : MonoBehaviour {

 public GameObject Enemy;
 public float mytimer = 5.0f;

 void OnTriggerEnter(Collider other)
 {
     switch(other.gameObject.name)
     {
         case "EnemyTrigger":

             if(mytimer > 0){
                 mytimer -=Time.deltaTime;
                 }
             else 
             if(mytimer<=0){

                 Destroy(other.gameObject);

                 Transform enemy;
                 GameObject enemySpawnPoint = GameObject.Find("EnemySpawn");

                 enemy =      Instantiate(Enemy,enemySpawnPoint.transform.position,enemySpawnPoint.transform.rotation) as Transform; 
                 Debug.Log("Spawned Enemy");
                 break;
                 }
         }
     }
}

谁能向我解释错误在说什么?还有我应该怎么做才能改变它?

【问题讨论】:

  • 'break' 在 if 里面?

标签: c# timer unity3d


【解决方案1】:

解决办法

switch(other.gameObject.name)
{
    case "EnemyTrigger":

        if(mytimer > 0)
            mytimer -=Time.deltaTime;

        else if(mytimer<=0)
        {   
            Destroy(other.gameObject);

            Transform enemy;
            GameObject enemySpawnPoint = GameObject.Find("EnemySpawn");

            enemy = Instantiate(Enemy,enemySpawnPoint.transform.position,
                        enemySpawnPoint.transform.rotation) as Transform; 
            Debug.Log("Spawned Enemy");

        }

    break;
}

您收到错误是因为您将 case 对应的 break 隐藏在 else-if 语句中。

【讨论】:

  • 谢谢,我现在看到了,但现在我的计时器没有倒计时。嗯,有点。每次您踏入触发器时,它都会倒计时并冻结。它不会自动倒计时5-0。我该如何解决这个问题?
  • 您需要编辑或创建一个新问题并解释您要做什么。我不知道。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多