創(chuàng)建物體的三種方法卓舵,這三種方法實際上都是屬于GameObject類的方法
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//創(chuàng)建gameObject的方法
public class gameObject : MonoBehaviour {
public GameObject prefab;
// Use this for initialization
void Start () {
//1.第一種創(chuàng)建方法(創(chuàng)建空的游戲物體衍锚,名字為New Game Object)
//也可以對其進行命名咱圆,比如命名為“Cube”
new GameObject();
GameObject go = new GameObject("Cube");
//第二種創(chuàng)建方法 靜態(tài)方法Instantiate()
//根據(jù)prefab或者場景中的游戲物體/特效來實例化的(理解:一個類的實例化過程)
GameObject.Instantiate(prefab);
//第三中創(chuàng)建方法 CreatePrimitive() 創(chuàng)建一些原始的圖元或形狀
//原始的圖元比如:cube plane等等
GameObject.CreatePrimitive(PrimitiveType.Cube);
GameObject.CreatePrimitive(PrimitiveType.Capsule);
}
// Update is called once per frame
void Update () {
}
}
通過代碼給游戲物體添加組件
如:添加一個剛體組件(可以添加任意組件,包括自定義腳本)
GameObject go = new GameObject("Cube");
go.AddComponent<Rigidbody>();
GameObject的兩個常用屬性:
GameObject go = new GameObject("Cube");
//表示游戲物體是否在Hierarchy面板中激活
Debug.Log(go.activeInHierarchy); //true
go.SetActive(false);
Debug.Log(go.activeInHierarchy); //false
//tag標(biāo)簽,用來區(qū)分不同的游戲物體
Debug.Log(go.tag);
其他屬性:
layer 分層
scene 所在場景
tag 標(biāo)簽
transform
GameObject的靜態(tài)方法
1.GameObject.CreatePrimitive 見上面第三種創(chuàng)建物體的方法
2.GameObject.Find (根據(jù)名字)查找游戲物體
通過遍歷來查找(當(dāng)游戲物體較多時曼氛,比較耗費性能)
3.GameObject.FindGameObjectsWithTag
返回所有符合這個標(biāo)簽的游戲物體(一個數(shù)組)
4.GameObject.FindWithTag
返回第一個符合這個標(biāo)簽的游戲物體