Unity GameObject物件的幾個重要方法
阿新 • • 發佈:2019-02-17
前端開發的認識就是學習物件的API方法。而不是像我們在在最開始學習C#語言一樣,大部分都是自己實現的。很好的體現了面向物件的精髓。
在Unity開發中我們使用最多的物件,莫過於GameObject類了。這裡簡單的寫了一些GameObject類中的一些方法案例,也會在後續中慢慢補充。
首先是建立物件:
建立物件有很多的方式Unity主要支援:
1.通過GameObject選單欄中建立
2.通過程式碼的建立
3.從資源中拖拉進場景中
克隆遊戲物件
克隆遊戲物件從效率上講,克隆一個物件要比建立一個物件效率要高。常用於一些完全相同並且數量龐大的遊戲物件,比如發射的子彈物件,每一顆子彈物件是完全一樣的,每一次發射子彈都會克隆一個子彈物件,並且讓克隆的子彈物件完成自己的生命週期。
獲取遊戲物件
GameObject.Find 查詢static GameObject Find (string name) 找到並返回一個名字為name的遊戲物體
GameObject.FindGameObjectsWithTag 查詢相同標籤的遊戲物體列表
GameObject.FindGameObjectWithTag 查詢相同標籤的遊戲物體
刪除遊戲物件
當不需要遊戲物件的時候我們可以刪除遊戲物件
以下是相關的程式碼:
using UnityEngine;
using System.Collections;
public class FindGameObject : MonoBehaviour {
Time timer;
float f = 3;
GameObject cloneGameObject;
// Use this for initialization
void Start () {
//通過名字查詢物件
GameObject obj1 = GameObject.Find("Player1");
GameObject obj2 = GameObject.Find("Player2");
print(obj1.name);
print(obj2.name);
//通過標籤查詢物件
GameObject cubeObj = GameObject.FindGameObjectWithTag("cube1" );
print(cubeObj.name);
//克隆一個物體
cloneGameObject = GameObject.Instantiate(cubeObj);
//給克隆的物體新增一個名字
cloneGameObject.name = "my_sphere";
//給克隆的物體新增一個名字
cloneGameObject.transform.position = new Vector3(0,0,1);
//給克隆的物體材質球跟換一個顏色
cloneGameObject.GetComponent<Renderer>().material.color = new Color(120,146,234);
//是否啟用一個物體 啟用的狀態是顯示出來的
//可以通過設定true或者false用來隱藏或者顯示一個物體
//cloneGameObject.SetActive(true);
//通過程式碼建立一個物體
GameObject sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere);
sphere.transform.position = new Vector3(2,2,2);
}
// Update is called once per frame
void Update () {
//3秒後讓一個物體消失
f -= Time.deltaTime;
if (f < 0)
{
Destroy(cloneGameObject);
}
}
}