Unity 發射彈藥,摧毀物件 prefab, Instantiate, Destroy
Instantiate (GameObject , transform.position , new Quaternion (0,0,0,0))
Instantiate – 實例化:克隆(複製)一個對象並返回他的實體
參數1 – 被複製的遊戲物件
參數2 – 複製出來的物件的位置
參數3 – 複製出來的物件的旋轉(四元數)
將物件拖曳至project視窗,會發現project視窗多了一個的方塊,這就是prefab,拖曳進去後,「Project視窗的物件」與「場景中的物件」就會形成父子關係,Project是父,場景的是子
Destroy(object); 釋放記憶體
Instantiate會將複製後的物件傳回,可以使用Object類型去接收它,或著將它轉型成GameObject。
也就是可以一次有很多 Bullet 在場上 哪怕你只宣告了一個,它會自動複製更多。
GameObject CloneBullet = (GameObject)Instantiate(Bullet,
transform.position, new Quaternion(0, 0, 0, 0));
Instantiate會將複製後的物件傳回,可以使用Object類型去接收它,或著將它轉型成GameObject。
也就是可以一次有很多 Bullet 在場上 哪怕你只宣告了一個,它會自動複製更多。
GameObject CloneBullet = (GameObject)Instantiate(Bullet,
transform.position, new Quaternion(0, 0, 0, 0));
因此對於這種物件都要先把他拉進Project內,建造成prefab,之後對prefab進行變更並不會對主物件進行變更,也就不會有已經刪除無法控制的問題。
分辨敵我以及扣血
void OnTriggerEnter(Collider other){
if (other.gameObject.tag == "Player")
{
other.GetComponent<status>().hp -= 10;
print(other.GetComponent<status>().hp);
if (other.GetComponent<status>().hp <= 10)
Destroy(other.gameObject);
}
}
留言
張貼留言