Unity 物件讀取

今天要介紹一個新的動帶物件讀取方式:

AssetDatabase.LoadAssetAtPath( string assetPath, Type type )

第一個參數是物件的檔案路徑,第二個參數是物件類型

透過這個方法,我們不需要像Resource.Load一樣把物件都放在Resource資料夾下也可以讀取到!!!(這就是最方便的地方)

但這個方法會有一些限制,因為AssetDatabase.LoadAssetAtPath是包含在Unity.Editor下的API所以只能在Unity中使用,如果Build出來還是要用AssetBundle或是Resource.Load喔!

================正文開始================

1.開啟一個新專案並新增一個資料夾Prefabs

image

 

2.在場景中新增一個Cube

image

 

3.在Asset資料夾下新增一個Material叫做Red,並賦予其紅色(方便辨識)

image

image

 

4.把這個Material拖曳到場景上的Cube上,這樣場景上就有一個紅色的Cube了

image

image

 

5.接著我們把這個Cube拖曳到prefab資料夾中做成預製物件並刪除場景上的Cube

image

 

6.接下來我們要用程式碼去Load出剛剛做好的預製物件,我們新增一個名為LoadPrefab的C#程式碼內容如下

image

image

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//引用Unity Editor
using UnityEditor;

public class LoadPrefab : MonoBehaviour
{
    //宣告PreFab
    public GameObject ThePrefab;
    void Start()
    {
        //撈取物件並指定物件類行為GameObject
        ThePrefab = AssetDatabase.LoadAssetAtPath("Assets/Prefabs/Cube.prefab", typeof(GameObject)) as GameObject;
        Debug.Log("撈到" + ThePrefab.name + "啦!!!");
        //生成撈取到的物件
        Instantiate(ThePrefab);
    }
}

 

7.接下來把這支程式拖曳到場景中的MainCamera上並按下執行我們會看到場景中生成我們所撈取到的Cube這樣就大功告成啦

image

image

 

===========有任何問題歡迎留言===========

或是直接Email給我有空就會回:jax1024601@gmai.com

感謝閱讀!

arrow
arrow

    『迷途』 發表在 痞客邦 留言(0) 人氣()