Unity 3D游戏开发 - U3D进阶 | 常用 API 之实例化与销毁

实例化游戏物体

  • 游戏案例介绍
    • 很多 MMORPG 游戏中都有类似 “金钱副本” 的副本关卡。在这类副本中通常是限定一个时间,在这个时间内玩家尽情破坏收集金钱。
    • 分析游戏场景元素
      • 场景中所有的坛子,应用相同模型,坛子是预制体。
      • 坛子是从 “天上” 掉下来的,所以坛子模型身上有刚体组件。
      • 玩家在一段时间内没有打碎坛子,这些坛子会消失。
  • 案例场景制作
    • 创建地面模型;
    • 创建 “坛子” 模型,并制成预制体。
  • 实例化生成 1 个坛子
    • GameObject.Instantiate(Object, Vector3, Quaternion);
    • Object:用于实例化的预制体;
    • Vector3:实例化后生成物体所在的位置;
    • Quaternion [四元数]:实例化后生成物体的旋转状态;
    • Quaternion.identity:无旋转;
  • 构造随机位置
    • 位置是用 Vector3 类型进行表示的。
    • Random.Range(min, max):生成随机数。
    • 在 min 和 max 之间随机生成一个随机数。
      //按下键盘空格键,在随机位置实例化一个物体.
      public class CreateBoxes : MonoBehaviour {
      
          public GameObject goPrefab;
      
      	void Start () {
      
      	}
      	
      	void Update () {
              if(Input.GetKeyDown(KeyCode.Space))
              {
                  Vector3 position = new Vector3(Random.Range(-4.0f, 4.0f), 3, Random.Range(-4.0f, 4.0f));
                  GameObject.Instantiate (goPrefab, position, Quaternion.identity);
              }
      	}
      }

销毁游戏物体

  • 语法
    • GameObject.Destory(Object, float);  定时销毁某个游戏物体。
    • Object:要销毁的游戏物体。
    • float:时间,多少秒后销毁。
      public class Box : MonoBehaviour {
      
      	void Start () {
              GameObject.Destroy(gameObject, Random.Range(5.0f, 10.0f));
      	}
      }

猜你喜欢

转载自blog.csdn.net/weixin_41232641/article/details/82821510
今日推荐