unity添加对象实例_【Unity】6.3 通过 C# 脚本创建和访问游戏对象
分類:Unity、C#、VS2015
創建日期:2016-04-16
一、簡介
在游戲開發過程中,腳本不但需要訪問腳本所在的游戲對象的組件,還經常需要訪問和控制真他游戲對象。另外,根據項目需求,還可能需要通過腳本創建對象。
本節示例的最終運行效果如下:
二、查找場景中的游戲對象
在Unity腳本中,開發人員可以通過下面量的方式來訪問游戲對象。
1、通過名稱字符串來查找
使用函數GameObject.Find()查找在參數中指定的游戲對象。如果場景中存在指定名稱的游戲對象,則返回該對象的引用,否則返回null。如果存在多個重名的對象,該方法僅返回第一個對象的引用。
例如:
private GameObject obj;
void Start()
{
//尋找整個場景中名為Cube的游戲對象并賦予obj變量
obj = GameObject.Find("Cube");
}
2、通過標簽(Tag)來查找
使用函數GameObject.FindWithTag()查找在參數中指定的游戲對象。如果場景中存在指定標簽的游戲對象,那么返回該對象的引用,否則返回null。
例如:
GameObject player=GameObject.FindWithTag("player");
3、注意的問題
獲取游戲對象或組件的函數都比較耗時,因此,一般不要在Update()方法中去獲取這些對象,而是應該在Start()方法中查找并將其保存到聲明的字段變量中,然后再在Update()方法中使用這些組件或對象。
三、創建游戲對象
除了查找場景中的游戲對象外,當然也可以直接用腳本創建對象并將其添加到場景中。具體用法見接下來介紹的示例。
在實際項目中(包括游戲項目、虛擬現實VR項目,增強現實AR項目、……),這些場景中動態添加、修改或者刪除的對象都需要通過腳本來控制。
四、本節例子的設計步驟
1、在Unity的Project中Assets文件夾下添加一個名為“6.3”的子文件夾,然后在該文件夾下創建一個名為“Scene6_3.unity”的場景。
2、向場景中添加一個Plane,設置(復位)其位置:
3、向場景中添加一個Cube。
4、調整攝像機以及Cube的參數,使其方便地可看到:
其中,Cube的參數如下:
Main Camera的參數如下:
5、向場景中添加一個空GameObject,并將其換名為manager:
6、切換到VS2015,在6.3子文件夾下添加一個名為“Demo3_1.cs”的腳本文件:
添加后看到的結果如下:
7、將Demo3_1.cs文件改為下面的內容并保存:
usingUnityEngine;usingSystem.Collections;public classDemo3_1 : MonoBehaviour
{publicTexture texture;privateGameObject obj;privateRenderer render;voidStart()
{//獲取游戲對象
obj = GameObject.Find("Cube");//獲取該對象的渲染器
render = obj.GetComponent();
}voidOnGUI()
{if (GUILayout.Button("創建立方體", GUILayout.Height(50)))
{//設置該模型默認為立方體
GameObject obj =GameObject.CreatePrimitive(PrimitiveType.Cube);//為對象添加一個剛體,賦予物理屬性
obj.AddComponent();//賦予對象的材質紅色
obj.GetComponent().material.color =Color.green;//設置對象的名稱
obj.name = "Cube";//設置此模型材質的位置坐標
obj.transform.position = new Vector3(0, 5f, 0);
}if (GUILayout.Button("創建球體", GUILayout.Height(50)))
{//設置該模型默認為立方體
GameObject obj =GameObject.CreatePrimitive(PrimitiveType.Sphere);//為對象添加一個剛體,賦予物理屬性
obj.AddComponent();//賦予對象的材質紅色
obj.GetComponent().material.color =Color.red;//設置對象的名稱
obj.name = "Sphere";//設置此模型材質的位置坐標
obj.transform.position = new Vector3(0, 5f, 0);
}if (GUILayout.Button("添加顏色", GUILayout.Width(100), GUILayout.Height(50)))
{//修改渲染顏色為紅色
render.material.color =Color.red;
}if (GUILayout.Button("添加貼圖", GUILayout.Width(100), GUILayout.Height(50)))
{//添加組件貼圖
render.material.mainTexture =texture;
}
}
}
8、切換到Unity,向6.3子文件夾下拖放一個圖片(隨便選一個圖片就行):
9、在層次視圖中選中manager,然后將Demo3_1拖放到檢視圖中,再將圖片拖放到檢視圖腳本下的Texture上(賦初值):
10、按【播放】按鈕進入預覽模式,即可看到下面的運行界面:
單擊【創建立方體】按鈕,會看到下落的立方體(因為代碼中添加了剛體所以會自動下落),但是下落到Plane上后就停下來了:
單擊【創建球體】按鈕,這個球會下落到立方體的上面停下來:
單擊【添加顏色】按鈕,就會給左邊那個立方體換色:
單擊【添加紋理】按鈕,就會給左邊那個立方體貼圖:
哈哈,好玩吧。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的unity添加对象实例_【Unity】6.3 通过 C# 脚本创建和访问游戏对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 铭瑄预告全新旗舰显卡,配备磁吸式氛围灯
- 下一篇: python出题器_随手写的python