0
我有以下幾點:給一個預製克隆一個腳本從另一個預製在Unity3d
TurretBallmanager:
using UnityEngine;
using System.Collections;
public class TurretBallManager : MonoBehaviour {
// Use this for initialization
public GameObject BallPrefab;
public GameObject TurretPrefab;
public static TurretBallManager instance;
public int turretSpawnTime=35;
public int LastTurretTime=0;
Vector2 v;
void Start() {
instance = this;
v = new Vector2(TurretPrefab.transform.position.x,TurretPrefab.transform.position.y);
}
// Update is called once per frame
void Update() {
if (Time.time > LastTurretTime + turretSpawnTime) {
GameObject T = Instantiate(TurretPrefab,v,Quaternion.identity) as GameObject;
//T.AddComponent<Turret>();
v.x=T.transform.position.x+2;
}
}
}
炮塔類:
using UnityEngine;
using System.Collections;
public class Turret : MonoBehaviour {
// Use this for initialization
double LastBallTime=0.0;
double LastTurretTime=0.0;
public decimal spawnballTime=1.5;
Vector2 v ;
void Start() {
}
// Update is called once per frame
void Update() {
if (Time.time > LastBallTime + spawnballTime) {
LastBallTime=Time.time;
Debug.Log (transform.position);
GameObject B = Instantiate(TurretBallManager.instance.BallPrefab, transform.position, transform.rotation) as GameObject;
//B.AddComponent<Ball>();
}
}
}
Ball類:
using UnityEngine;
using System.Collections;
public class Ball : MonoBehaviour {
// Use this for initialization
void Start() {
}
void OnMouseDown() {
Object.Destroy (gameObject);
}
// Update is called once per frame
void Update() {
}
void OnBecameInvisible()
{
Debug.Log ("destroyed");
Destroy(gameObject);
}
}
我有一個炮塔希望f每1秒一個球,這個球是一個預製的願望有球類(當球出界或碰到它應該被銷燬時)我想要做的是創造另一個炮塔每個35 sec
希望也應該火了球每1秒。 我所面對的休耕問題:
- 炮塔被
35 sec
後創建的,但它的球都沒有實現ball script
和他們沒有被破壞 - 溢出由於產生的球的數量而發生並且整個項目處於凍結狀態
- 圖像1:一旦遊戲開始
- 圖片2:當35秒結束
- 圖3:可以看到數百萬炮塔在35秒結束時同時產生
可以請你解釋你的代碼 – Sora
我加入在線評論中的所有腳本。如果你需要幫助理解,請告訴我 –
我弄清楚了我的代碼中的錯誤,我真的很感激你的代碼,我發現很多東西要添加到腳本中,問題出現在這行之後:'if(Time.time> LastTurretTime + turretSpawnTime){'我沒有更新'LastTurretTime',我忘了添加這行'LastTurretTime = Time.time;',現在一切正常。非常感謝 – Sora