通过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. 最后运行游戏。
可以看见创建了一个预设对象,并且添加了脚本组件。