1.修改文件后缀为rscript2.NewSubScript现在专用于创建简单对象

This commit is contained in:
2025-11-11 16:19:14 +08:00
parent 832622b84c
commit 1811006eb1
3 changed files with 34 additions and 5 deletions

View File

@@ -184,7 +184,7 @@ namespace Demo.Game
{ {
while (MainConfig.Contains("root") == false) while (MainConfig.Contains("root") == false)
{ {
string defaultRootPath = "root.cpp"; string defaultRootPath = "root.rscript";
if (content.IsCreateNewProject) if (content.IsCreateNewProject)
{ {
MainConfig["root"] = defaultRootPath; MainConfig["root"] = defaultRootPath;

View File

@@ -468,13 +468,42 @@ namespace Demo
callback?.Invoke(child); callback?.Invoke(child);
} }
public ScriptableObject DoGenerateSubScript([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);
return null;
}
// 生成对象
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
ConventionUtility.StartCoroutine(child.LoadScript(""));
LastLoadedScriptableObject = child;
callback?.Invoke(child);
return child;
}
/// <summary> /// <summary>
/// 创建子脚本 /// 创建不需要脚本语句的子脚本对象
/// </summary> /// </summary>
/// <param name="type">指定类型</param> /// <param name="type">指定类型</param>
public IEnumerator NewSubScript([In] string type) public ScriptableObject NewSubScript([In] string type)
{ {
return DoGenerateSubScriptAsync(type, $"New {type}", null); return DoGenerateSubScript(type, $"New {type}", null);
} }
/// <summary> /// <summary>

View File

@@ -84,7 +84,7 @@ namespace Demo.Game
var childName = type; var childName = type;
int childIndex = 1; int childIndex = 1;
var childFullNameWithoutExtension = childName; var childFullNameWithoutExtension = childName;
var extension = ".h"; var extension = ".rscript";
if (childDir.Exists()) if (childDir.Exists())
{ {
childFullNameWithoutExtension = $"{childName}{(childIndex == 1 ? "" : childIndex.ToString())}"; childFullNameWithoutExtension = $"{childName}{(childIndex == 1 ? "" : childIndex.ToString())}";