private static void GenerateEngineStruct(TypeTreeContext context, SerializableType origin, string name) { switch (origin.Name) { case SerializableType.Vector2Name: Vector2fLayout.GenerateTypeTree(context, name); break; case SerializableType.Vector2IntName: Vector2iLayout.GenerateTypeTree(context, name); break; case SerializableType.Vector3Name: Vector3fLayout.GenerateTypeTree(context, name); break; case SerializableType.Vector3IntName: Vector3iLayout.GenerateTypeTree(context, name); break; case SerializableType.Vector4Name: Vector4fLayout.GenerateTypeTree(context, name); break; case SerializableType.RectName: RectfLayout.GenerateTypeTree(context, name); break; case SerializableType.BoundsName: AABBLayout.GenerateTypeTree(context, name); break; case SerializableType.BoundsIntName: AABBiLayout.GenerateTypeTree(context, name); break; case SerializableType.QuaternionName: QuaternionfLayout.GenerateTypeTree(context, name); break; case SerializableType.Matrix4x4Name: Matrix4x4fLayout.GenerateTypeTree(context, name); break; case SerializableType.ColorName: ColorRGBAfLayout.GenerateTypeTree(context, name); break; case SerializableType.Color32Name: ColorRGBA32Layout.GenerateTypeTree(context, name); break; case SerializableType.LayerMaskName: LayerMaskLayout.GenerateTypeTree(context, name); break; case SerializableType.AnimationCurveName: AnimationCurveTplLayout.GenerateTypeTree(context, name, SingleLayout.GenerateTypeTree); break; case SerializableType.GradientName: GradientLayout.GenerateTypeTree(context, name); break; case SerializableType.RectOffsetName: RectOffsetLayout.GenerateTypeTree(context, name); break; case SerializableType.GUIStyleName: GUIStyleLayout.GenerateTypeTree(context, name); break; case SerializableType.PropertyNameName: PropertyNameLayout.GenerateTypeTree(context, name); break; default: throw new Exception($"Unknown engine struct {origin.Name}"); } }