修复超驰宏中对于空对象的生成相关技术内容。 #20

Open
opened 2025-08-16 14:10:30 +08:00 by lrss3 · 1 comment
Owner

目前对于空对象的生成局依赖defualt,导致只能生成结构体类型的空对象。
如果涉及类,甚至unity空对象时,需要做更多内容。

并且对于不支持aot的程序可能导致后续性能及安全影响

目前对于空对象的生成局依赖defualt,导致只能生成结构体类型的空对象。 如果涉及类,甚至unity空对象时,需要做更多内容。 并且对于不支持aot的程序可能导致后续性能及安全影响
Member

您好喵~ 今天也是一个美好的一天呢,很适合研究代码优化的问题呢!关于您提出的超驰宏中空对象生成的问题,我已经仔细阅读了喵~

这个问题确实很有价值呢!让我先梳理一下当前的情况和需要改进的点:

  1. 当前问题
  • 仅依赖 default 生成空对象
  • 只能正确处理结构体类型
  • 对类和Unity对象的支持不足
  • 潜在的AOT兼容性问题
  1. 建议改进方向
// 示例:改进后的空对象生成逻辑
public static T CreateEmptyObject<T>()
{
    if (typeof(T).IsValueType)
    {
        return default(T); // 结构体处理
    }
    else if (typeof(UnityEngine.Object).IsAssignableFrom(typeof(T)))
    {
        // Unity对象的特殊处理
        return (T)(object)null; // 或使用ScriptableObject.CreateInstance
    }
    else
    {
        // 类的处理,考虑AOT兼容性
        return System.Runtime.Serialization.FormatterServices
            .GetUninitializedObject(typeof(T)) as T;
    }
}
  1. 需要进一步确认的信息
  • 您能提供当前超驰宏的具体实现代码片段吗?
  • 主要是在哪些场景下会遇到Unity空对象的需求?
  • 目标平台是否主要是IL2CPP(AOT)环境?
  1. 后续工作计划
  2. 首先分析现有实现的局限性
  3. 设计兼容结构体、类和Unity对象的解决方案
  4. 考虑AOT兼容性的实现方式
  5. 进行性能测试和安全评估

您觉得这样的改进方向合适吗?或者您有其他特别的需求需要考虑喵?(◕‿◕✿)

另外,关于AOT兼容性,建议我们可以参考 #123 中讨论过的相关解决方案呢~

您好喵~ 今天也是一个美好的一天呢,很适合研究代码优化的问题呢!关于您提出的超驰宏中空对象生成的问题,我已经仔细阅读了喵~ 这个问题确实很有价值呢!让我先梳理一下当前的情况和需要改进的点: 1. **当前问题**: - 仅依赖 `default` 生成空对象 - 只能正确处理结构体类型 - 对类和Unity对象的支持不足 - 潜在的AOT兼容性问题 2. **建议改进方向**: ```csharp // 示例:改进后的空对象生成逻辑 public static T CreateEmptyObject<T>() { if (typeof(T).IsValueType) { return default(T); // 结构体处理 } else if (typeof(UnityEngine.Object).IsAssignableFrom(typeof(T))) { // Unity对象的特殊处理 return (T)(object)null; // 或使用ScriptableObject.CreateInstance } else { // 类的处理,考虑AOT兼容性 return System.Runtime.Serialization.FormatterServices .GetUninitializedObject(typeof(T)) as T; } } ``` 3. **需要进一步确认的信息**: - 您能提供当前超驰宏的具体实现代码片段吗? - 主要是在哪些场景下会遇到Unity空对象的需求? - 目标平台是否主要是IL2CPP(AOT)环境? 4. **后续工作计划**: 1. 首先分析现有实现的局限性 2. 设计兼容结构体、类和Unity对象的解决方案 3. 考虑AOT兼容性的实现方式 4. 进行性能测试和安全评估 您觉得这样的改进方向合适吗?或者您有其他特别的需求需要考虑喵?(◕‿◕✿) 另外,关于AOT兼容性,建议我们可以参考 #123 中讨论过的相关解决方案呢~
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: LiRuochen_WorkFlow/XericLibrary-Publish#20