Unity3D基礎--動態創建和設置游戲對象


轉載自原文:http://m.blog.csdn.net/blog/smbroe/43488627

1.如何動態創建對象:調用GameObjectCreatePrimitive方法可以按模型進行創建,PrimitiveType中可選的模型有,Cube(立方體),Sphere(球體),Capsule(膠囊),Plane(平原),Cylinder(圓柱);創建出的對象不需要Add之類的就可以顯示出來

GameObject cubeObject = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
cubeObject.transform.position = new Vector3(-2.0f, 0.5f, 4.0f);<span style="font-family:宋體;">//指定游戲對象的位置

2.動態添加組件:通過AddComponent<Rigidbody>();可以為一個GameObject對象添加一個剛體組件,其中Rigidbody表示剛體,我們可以通過更改這個類型來為其添加不同的組件。當我們添加剛體組件后可以獲得GameObject的rigidbody對象並對剛體進行設置

cubeObject.AddComponent<Rigidbody>();//為游戲對象添加剛體組件
cubeObject.rigidbody.mass = 0.5f;//設置剛體密度,默認為1
cubeObject.rigidbody.AddForce(Vector3.forward *100);//為其施加向前的力

3.動態添加腳本:可以通過AddComponent方法並傳入一個string類型對象(表示腳本的名稱)來為GameObject對象動態添加腳本。

cubeObject.AddComponent("AutoDestory");//添加腳本文件AutoDestory

4.動態銷毀對象:Destroy(cubeObject)是立即銷毀游戲對象,Destroy(cubeObject,1)是延遲一秒銷毀游戲對象

5.動態銷毀腳本:Destroy(cubeObject.GetComponent(“AutoDestory))銷毀cubeObject對象上附加的腳。

6.一般我們在游戲對象不可見時會銷毀或停止其動作,在其被攝像同捕捉到可見時執行其動作,這樣我們可以復寫其中的OnBecameInvisible方法(當游戲對象不可見時被執行),OnBecameVisible方法(當游戲對象可見時被執行)來達到上述效果。

using UnityEngine;
using System.Collections;

//當游戲對象不可見時銷毀
public class AutoDestory  :  MonoBehaviour
{
    
    void OnBecameInvisible(){
        Destroy (this.gameObject);
    }
}

7.復制對象:在游戲中有時相同的對象會用到很多次,例如大量的子彈發射,如果利用復制對象的方法可以提高效率。調用GameObjectInstantiate方法返回一個Object對象進行強轉可以得到復制的對象。

GameObject cubeClone = (GameObject) GameObject.Instantiate(cubeObject);

8.動態設置游戲對象的材質,為游戲對象添加貼圖:我們可以通過cubeObject.renderer.material獲得游戲對象的材質,並對其賦值即可,一般我們可以聲明一個publicMaterial的成員變量,並賦給游戲對象,這樣我們可以在Unity的編輯器中隨時更改貼圖。

using UnityEngine;
using System.Collections;

public class Test : MonoBehaviour {

    public Material cubMeterial;

    // Use this for initialization
    void Start () {
        GameObject cubeObject = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
        cubeObject.transform.position = new Vector3(-2.0f, 0.5f, 4.0f);
        cubeObject.renderer.material = cubMeterial;

    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM