最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

程序員常用的Unity3D核心類及方法

2020-09-29 17:27 作者:博毅創(chuàng)為  | 我要投稿

前言

創(chuàng)建、克隆、銷毀游戲?qū)ο?/strong>

01 創(chuàng)建游戲?qū)ο?/h1>

GameObject cube=GameObject.CreatePrimitive(PrimitiveType.Cube); Cube.name=”cube1”;//設(shè)定名字

Cube.renderer.material.color=Color.red;//設(shè)定對象的顏色

02 克隆對象:Instantiate();

GameObject obj=GameObject.Instantiate(cube);//創(chuàng)建一個

03 銷毀對象:Destroy();

Destroy(obj,1);//一秒后對象消失

把腳本添加到對象上:

一種是把腳本直接拖到對象上;另一種是通過代碼:cube.AddComponent(“script”);銷毀對象的腳本:Destroy(cube.GetComponent(“script”));

1、給游戲物體添加名為FoobarScript的腳本 GameObject.AddComponent ("FoobarScript");

2、給游戲物體添加剛體Rigidbody rb = GameObject.AddComponent ("Rigidbody"); 3、給游戲物體添加球體碰撞器SphereCollider sc = GameObject.AddComponent ("SphereCollider");

GameObject類

方法:Find()、FindWithTag()、FindGameObjectsWithTag()等

01 通過名稱來查找

GameObject player = new GameObject("Player"); GameObject go=GameObject.Find(“Player”);

02 通過tag標(biāo)簽獲取單個游戲?qū)ο?/h1>

GameObject go=GameObject.FindWithTag(“Player”);

GameObject go=GameObject..FindGameObjectWithTag (“Player”);

03 通過游戲標(biāo)簽獲取多組游戲?qū)ο?/h1>

GameObject[] go=GameObject.FindGameObjectsWithTag (“Player”);

組件引用函數(shù):

GetComponent 得到組件

GetComponents 得到組件列表(用于多個同類型組件的時候)

GetComponentInChildren 得到對象或?qū)ο笞游矬w上的組件

如: ScriptName other=GameObject.GetComponent();//在對象上添加腳本

print(other.name);//可以通過對象引用腳本中的名字

Time類

屬性:deltaTime

如1:

Float a=3.0f;

Void Update(){

?A-=Time.delatTime;//倒計時 Print(a);

}

如2:

按下A鍵,游戲物體向左移動;按下D鍵,游戲物體向右移動

float move_h=0;

if (Input.GetKey (KeyCode.A)) { move_h-=Time.deltaTime; }

if (Input.GetKey (KeyCode.D)) { move_h+=Time.deltaTime; }

transform.Translate(new Vector3(move_h,0,move_v));

協(xié)同程序(Coroutine)

協(xié)同程序,即在主程序運行時同時開啟另一段邏輯處理來協(xié)同當(dāng)前程序的執(zhí)行。換句話說,開啟協(xié)同程序就是開啟一個線程。

在Unity3D中,使用MonoBehaviour.StartCoroutine方法即可開啟一個協(xié)同程序,也就是說該方法必須在MonoBehaviour或繼承于MonoBehaviour的類中調(diào)用。

在Unity3D中,使用StartCoroutine(string methodName)可以開啟一個線程。

Yield

Yield語句是一種特殊類型的Return(返回)語句,它可以確保函數(shù)在下一次被執(zhí)行時,不是從頭開始,而是從Yield語句處開始。

可以實現(xiàn)將一段程序延遲執(zhí)行或者將其各個部分分布在一個時間段內(nèi)連續(xù)執(zhí)行

void Start () {

print("Start開始"); StartCoroutine("Do"); print("Do調(diào)用后");

}

IEnumerator Do(){

print("Do開始");yield return ?new WaitForSeconds(3.0f); ?print("暫停3秒后");

}

運行結(jié)果為:Start開始--》Do開始---》Do調(diào)用后---》暫停3秒后

Random類(隨機(jī)數(shù))

float a=Random.value;

int b=Random.Range(0,100) 包括最大和最小

float c=Random.Range(0.0f,1.0f); 包括最小但不包括最大

消息傳遞函數(shù)

GameObject.SendMessage:向自身的腳本中發(fā)送消息 GameObject.BroadcastMessag:向自身及子類中發(fā)送消息

GameObject.SendMessageUpwards:向自身及父類中發(fā)送消息 如:

Sphere:

void Start () {

gameObject.SendMessageUpwards ("Do","向父對象發(fā)出信息"); } Cube:

void Do(string message){ print (message);

}

Math方法

Math.Repeat(float t , float leght); 返回t的值,而且t的值在0到legth之間,如果t的值大于length,則t=t%length(取余操作,始終讓返回的值小于length)

實例:Mathf.Repeat(Time.time, 3) //讓Time.time的數(shù)值除以3取余,得出的值不能大于3


程序員常用的Unity3D核心類及方法的評論 (共 條)

分享到微博請遵守國家法律
永安市| 纳雍县| 石城县| 蒲江县| 老河口市| 沾化县| 滨州市| 宝清县| 扶绥县| 通江县| 聊城市| 德安县| 泸溪县| 甘南县| 连州市| 井冈山市| 广东省| 阜康市| 宜阳县| 六枝特区| 桂阳县| 涡阳县| 云龙县| 上高县| 普定县| 英山县| 富裕县| 甘洛县| 章丘市| 亚东县| 疏勒县| 犍为县| 九江县| 长泰县| 习水县| 旅游| 新干县| 阳山县| 吴旗县| 保山市| 华池县|