为了更好地理解unity,模仿了教程,以下均为教程中的代码:
DestroyByBoundary:
using UnityEngine;
using System.Collections;
public class DestroyByBoundary : MonoBehaviour
{
void OnTriggerExit (Collider other)
{
Destroy(other.gameObject);
}
}
DestroyByContact.cs:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DestroyByContact : MonoBehaviour {
public GameObject explosion;
public GameObject playerExpolsion;
public int score;
private GameController gameController;
void Start(){
GameObject gameControllerObject = GameObject.FindWithTag ("GameController");
if(gameControllerObject != null){
gameController = gameControllerObject.GetComponent<GameController> ();
}
if(gameControllerObject == null){
Debug.Log("can not find 'GameController'script");
}
}
void OnTriggerEnter(Collider other){
if(other.tag=="Boundary"){
return;
}
Instantiate (explosion, transform.position, transform.rotation);
if(other.tag=="Player"){
Instantiate (playerExpolsion,other.transform.position,other.transform.rotation);
gameController.GameOver ();
}
gameController.addScore (score);
Destroy (other.gameObject);
Destroy (gameObject);
}
}
DestroyByBoundary:
using UnityEngine;
using System.Collections;
public class DestroyByBoundary : MonoBehaviour
{
void OnTriggerExit (Collider other)
{
Destroy(other.gameObject);
}
}
DestroyByContact.cs:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DestroyByContact : MonoBehaviour {
public GameObject explosion;
public GameObject playerExpolsion;
public int score;
private GameController gameController;
void Start(){
GameObject gameControllerObject = GameObject.FindWithTag ("GameController");
if(gameControllerObject != null){
gameController = gameControllerObject.GetComponent<GameController> ();
}
if(gameControllerObject == null){
Debug.Log("can not find 'GameController'script");
}
}
void OnTriggerEnter(Collider other){
if(other.tag=="Boundary"){
return;
}
Instantiate (explosion, transform.position, transform.rotation);
if(other.tag=="Player"){
Instantiate (playerExpolsion,other.transform.position,other.transform.rotation);
gameController.GameOver ();
}
gameController.addScore (score);
Destroy (other.gameObject);
Destroy (gameObject);
}
}
DestroyByTime .cs:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DestroyByTime : MonoBehaviour {
public float lifeTime;
// Use this for initialization
void Start () {
Destroy (gameObject,lifeTime);
}
// Update is called once per frame
void Update () {
}
}
本文详细介绍了Unity中三种销毁游戏对象的方法:通过边界触发销毁、接触销毁和定时销毁。提供了DestroyByBoundary、DestroyByContact及DestroyByTime三个脚本实例,展示了如何在特定条件下删除游戏对象,包括使用碰撞检测、游戏控制器得分更新及预设爆炸效果。
2621

被折叠的 条评论
为什么被折叠?



