通過Scriptable裡面公有變量傳入的C#腳本,并且将這個腳本作為元件添加到一個gameobject裡面。
1. ScriptableObject中添加腳本變量與對象預設。
using UnityEditor;
using UnityEngine;
[CreateAssetMenu(menuName = "GameObject With Scirpt")]
public class GameObjectWithScirpt : ScriptableObject
{
public MonoScript script; // 需要添加的腳本
public GameObject gameObjectPerfab; // 對象預設
///
/// 建立預設對象執行個體,并添加腳本元件
///
/// 含有腳本元件的對象
public GameObject CreateGameObject()
{
GameObject go = Instantiate(gameObjectPerfab);
go.AddComponent(script.GetClass());
return go;
}
}
先建立一個Scirptable資源對象
添加變量TestScript(需要添加的腳本元件),Sphere(被添加腳本元件的預設)。
2.在另一個對象(GameManager)中調用建立預設。
using UnityEngine;
public class GameManager : MonoBehaviour
{
public GameObjectWithScirpt gameObjectWithScript;
// 在遊戲開始時,建立一個對象。
private void Start()
{
gameObjectWithScript.CreateGameObject();
}
}
将之前建立的Scriptable資源對象托入變量。
3. 最後運作遊戲。
可以看見建立了一個預設對象,并且添加了腳本元件。