Unity 物件讀取
今天要介紹一個新的動帶物件讀取方式:
AssetDatabase.LoadAssetAtPath( string assetPath, Type type )
第一個參數是物件的檔案路徑,第二個參數是物件類型
透過這個方法,我們不需要像Resource.Load一樣把物件都放在Resource資料夾下也可以讀取到!!!(這就是最方便的地方)
但這個方法會有一些限制,因為AssetDatabase.LoadAssetAtPath是包含在Unity.Editor下的API所以只能在Unity中使用,如果Build出來還是要用AssetBundle或是Resource.Load喔!
================正文開始================
1.開啟一個新專案並新增一個資料夾Prefabs
2.在場景中新增一個Cube
3.在Asset資料夾下新增一個Material叫做Red,並賦予其紅色(方便辨識)
4.把這個Material拖曳到場景上的Cube上,這樣場景上就有一個紅色的Cube了
5.接著我們把這個Cube拖曳到prefab資料夾中做成預製物件,並刪除場景上的Cube
6.接下來我們要用程式碼去Load出剛剛做好的預製物件,我們新增一個名為LoadPrefab的C#程式碼內容如下
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這樣就大功告成啦
===========有任何問題歡迎留言===========
或是直接Email給我有空就會回:jax1024601@gmai.com
感謝閱讀!
留言列表