成功使用RScript作为脚本初步运行
This commit is contained in:
@@ -441,6 +441,42 @@ namespace Demo
|
||||
callback?.Invoke(child);
|
||||
}
|
||||
|
||||
public IEnumerator DoGenerateSubScriptAsync([In] string type, string name, [Opt] Action<ScriptableObject> callback)
|
||||
{
|
||||
// 判断类型是否合法
|
||||
if (DefaultInstantiate.GetScriptableObjectInstantiate().TryGetValue(type, out var creater) == false)
|
||||
{
|
||||
Debug.LogError($"{type} is not exist or {type}'s Instantiater is not valid", this);
|
||||
callback?.Invoke(null);
|
||||
yield break;
|
||||
}
|
||||
// 生成对象
|
||||
var child = creater();
|
||||
child.ScriptName = name;
|
||||
child.transform.SetParent(this.transform);
|
||||
child.transform.SetLocalPositionAndRotation(Vector3.zero, Quaternion.identity);
|
||||
child.transform.localScale = Vector3.one;
|
||||
child.EnableScript("", "", type, this);
|
||||
|
||||
// Add Child
|
||||
Childs.Add(child);
|
||||
|
||||
// Load Child Script
|
||||
yield return child.LoadScript("");
|
||||
|
||||
LastLoadedScriptableObject = child;
|
||||
callback?.Invoke(child);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建子脚本
|
||||
/// </summary>
|
||||
/// <param name="type">指定类型</param>
|
||||
public IEnumerator NewSubScript([In] string type)
|
||||
{
|
||||
return DoGenerateSubScriptAsync(type, $"New {type}", null);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 加载子脚本
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user