| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- Classes that need C# wrappers:
- Math (Instead of a wrapper create actual C# classes, but which map 1-1 with C++ code so we can move them through C++/C# boundaries):
- -Vector2
- -Vector3
- -Vector4
- -Matrix3
- -Matrix4
- -Quaternion
- -Rect
- -Int2
- -Color
- Resources:
- - Mesh
- - Texture
- - Font
- - Material
- - GpuProgram
- - Technique
- - Shader
- - DepthStencil/Blend/Rasterizer/Sampler state
- Core objects:
- - RenderTarget
- - RenderWindow
- - RenderTexture
- - MultiRenderTexture
- - SceneObject
- - Component
- - plus specific components Camera, Renderable, maybe others
- - (later ofc ability to derive custom C# components)
- GUI:
- - EditorWindow
- - GUIWidget
- - GUILabel/GUIButton/GUIToggle/GUIInputBox/GUITexture...
- - GUILayoutX/GUILayoutY/GUILayoutOptions
- - GUISkin/GUIElementStyle
- Systems:
- - Resources
- - Importer
- - Application (startUp/shutDown)
- - Cursor
- - Debug
- - Input
- - Time
- -----------------
- Notes:
- - I will need RequireComponent[] attribute. This attribute should automatically add the specified class to the wanted
- GameObject. This is useful if you suddenly decide your class is now dependant on another, but you would otherwise have to manually
- go through all instances of that GameObject in scene and add the required component.
- - HOWEVER, a more generic way of doing this (maybe using prefabs) would be useful. Because what happens when a class suddenly becomes
- dependant on a resource, or a specific instance of a class? In that case we cannot use RequireComponent.
- - Use FrameUpdate[QueueIdx], OnCreate[QueueIdx], OnDestroy[QueueIdx] attributes to signify to the scripting system when to execute
- certain methods. QueueIdx allows you to specify the order in which these methods will be called. In Unity you have Awake and Start methods
- for initialization, but here you may just specify OnCreate[0] and OnCreate[1].
- - I will likely need C++ equivalents of these queues because C++ components will also require such ordering.
|