天天看點

unity擷取腳本元件_Unity通過代碼擷取從面闆傳入的mono腳本,并添加為GameObject的腳本元件...

通過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資源對象

unity擷取腳本元件_Unity通過代碼擷取從面闆傳入的mono腳本,并添加為GameObject的腳本元件...

添加變量TestScript(需要添加的腳本元件),Sphere(被添加腳本元件的預設)。

unity擷取腳本元件_Unity通過代碼擷取從面闆傳入的mono腳本,并添加為GameObject的腳本元件...

2.在另一個對象(GameManager)中調用建立預設。

using UnityEngine;

public class GameManager : MonoBehaviour

public GameObjectWithScirpt gameObjectWithScript;

// 在遊戲開始時,建立一個對象。

private void Start()

gameObjectWithScript.CreateGameObject();

将之前建立的Scriptable資源對象托入變量。

unity擷取腳本元件_Unity通過代碼擷取從面闆傳入的mono腳本,并添加為GameObject的腳本元件...

3. 最後運作遊戲。

unity擷取腳本元件_Unity通過代碼擷取從面闆傳入的mono腳本,并添加為GameObject的腳本元件...

可以看見建立了一個預設對象,并且添加了腳本元件。