上下文加载优化

This commit is contained in:
2025-12-15 11:39:46 +08:00
parent f724058cea
commit 0c79cd874e
5 changed files with 22 additions and 12 deletions

View File

@@ -378,6 +378,7 @@ namespace Demo.Editor
private void RegisterVariableGenerater()
{
// Generate Framework
Debug.Log(nameof(RegisterVariableGenerater), this);
var generaters = DefaultInstantiate.GetScriptableObjectInstantiate();
foreach (var asm in AppDomain.CurrentDomain.GetAssemblies())
{
@@ -420,7 +421,7 @@ namespace Demo.Editor
helperHeaderDir.MustExistsPath();
foreach (var (name, variable) in Convention.RScript.Variable.RScriptInjectVariableGenerater.AllRScriptInjectVariables)
{
(helperHeaderDir | name).SaveAsText(variable.scriptIndicator);
(helperHeaderDir | name.Replace('<', '[').Replace('>', ']')).SaveAsText(variable.scriptIndicator);
}
// Reset

View File

@@ -175,12 +175,12 @@ namespace Demo
/// </summary>
public partial class ScriptableObject
{
public readonly Dictionary<string, float> ScriptableObjectContents = new();
private NativeHashMap<int, float> ScriptableObjectContents;
[Convention.RScript.Variable.Attr.Method]
public float GetContent(string key)
{
if (ScriptableObjectContents.TryGetValue(key, out var result))
if (ScriptableObjectContents.IsCreated && ScriptableObjectContents.TryGetValue(key.GetHashCode(), out var result))
{
return result;
}
@@ -190,7 +190,11 @@ namespace Demo
[Convention.RScript.Variable.Attr.Method]
public float SetContent(string key, float value)
{
ScriptableObjectContents[key] = value;
if (ScriptableObjectContents.IsCreated == false)
{
ScriptableObjectContents = new(8, AllocatorManager.Persistent);
}
ScriptableObjectContents[key.GetHashCode()] = value;
return value;
}
}
@@ -315,7 +319,12 @@ namespace Demo
}
this.Parent = parent;
if (parent != null)
this.ScriptableObjectContents.AddRange(parent.ScriptableObjectContents);
{
foreach (var item in parent.ScriptableObjectContents)
{
this.ScriptableObjectContents[item.Key] = item.Value;
}
}
this.name = ScriptName;
@@ -603,7 +612,7 @@ namespace Demo
}
// 释放资源
{
this.ScriptableObjectContents.Clear();
this.ScriptableObjectContents.Dispose();
}
IsScriptApply = true;
}

View File

@@ -35,7 +35,7 @@ MonoBehaviour:
- line: '| useOnDemandResources: 0'
- line: '| accelerometerFrequency: 60'
- line: '| companyName: LiuBai'
- line: '| productName: Murmur-Resonance-Editor'
- line: '| productName: ScriptableObject-Editor'
- line: '| defaultCursor: {instanceID: 0}'
- line: '| cursorHotspot: {x: 0, y: 0}'
- line: '| m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b:
@@ -165,7 +165,7 @@ MonoBehaviour:
- line: '| loadStoreDebugModeEnabled: 0'
- line: '| visionOSBundleVersion: 1.0'
- line: '| tvOSBundleVersion: 1.0'
- line: '| bundleVersion: 1.0'
- line: '| bundleVersion: 1.1'
- line: '| preloadedAssets:'
- line: '| - {instanceID: 0}'
- line: '| - {instanceID: 0}'
@@ -1139,9 +1139,9 @@ MonoBehaviour:
- rid: 4324738286741356696
type: {class: WindowsPlatformSettings, ns: UnityEditor.WindowsStandalone, asm: UnityEditor.WindowsStandalone.Extensions}
data:
m_Development: 0
m_Development: 1
m_ConnectProfiler: 0
m_BuildWithDeepProfilingSupport: 0
m_BuildWithDeepProfilingSupport: 1
m_AllowDebugging: 0
m_WaitForManagedDebugger: 0
m_ManagedDebuggerFixedPort: 0