- (MEDIUM/HIGH PRIORITY) Add more essential nodes (see incomplete* list below)
- (MEDIUM/HIGH PRIORITY) Add clear ports button to event nodes that moves connections and removes unused ports
- (MEDIUM PRIORITY) Change line endings in code generation to be consistent
- (MEDIUM PRIORITY) Add examples
- (LOW PRIORITY) Add Undo/Redo
- (LOW PRIORITY) Add copy/paste
- (LOW/VERY LOW PRIORITY) Add sticky notes / comments
- (HIGH PRIORITY) Add collapsed state to node data
- (HIGH PRIORITY) Add create node menu (and title attribute to populate create node menu) (leech off of GTLogicGraph; it had a really nice implementation)
- (HIGH PRIORITY) Loading of saved graphs
- (HIGH PRIORITY) Compile generated code and give errors
- (HIGH PRIORITY) Write generated code to file if no errors and trigger a Unity Reimport - AssetDatabase.Refresh - For all files (http://docs.unity3d.com/Documentation/ScriptReference/AssetDatabase.Refresh.html) - AssetDatabase.ImportAsset - For specific file (http://docs.unity3d.com/Documentation/ScriptReference/AssetDatabase.ImportAsset.html)
- (MEDIUM PRIORITY) Make event nodes unable to be deleted
- (LOW PRIORITY) Embed node GUIDs in generated code in order to provide error feedback directly on nodes. This can also be used to provide runtime error feedback, not just compile-time
- (CANCELED)(MEDIUM PRIORITY) Add Event nodes to graph on file creation
Essential nodes (the incomplete list)
- (HIGH PRIORITY) Function node (without params or return values): basically use an event node for defining a function, simple end node (with text input for method name) for calling
- (HIGH PRIORITY) Math nodes (most important)
- (HIGH PRIORITY) Vector2 and Vector3 member nodes
- (MEDIUM PRIORITY) Bool Value Node (requires custom InputField) (might be able to leech off of GTLogicGraph)
- (MEDIUM PRIORITY) Variables (One node for creating variables, one node for accessing)
- (VERY LOW PRIORITY) Camera nodes
- (LOW PRIORITY) All event nodes (except event nodes with parameters)
- (VERY VERY LOW PRIORITY) GetComponent node (w/ dynamic generation for component types)
- (VERY HIGH PRIORITY) Basic Unity types
- (VERY HIGH PRIORITY) Conditional node
- (VERY HIGH PRIORITY) Basic C# data types
- (VERY HIGH PRIORITY) Assign node
- (HIGH PRIORITY) FixedUpdate, LateUpdate, Awake
- (HIGH PRIORITY) Time Node
- (HIGH PRIORITY) Vector2 node
- (HIGH PRIORITY) Transform nodes (position, scale, rotation)
- (HIGH PRIORITY) GetComponent node (just string input for component type and trust user ;) )
- (HIGH PRIORITY) Properties (One node for creating properties, one node for accessing)
- (VERY LOW PRIORITY) Add event splitter / extender node which just takes the event as an input and splits it into multiple ports for cleaner code
Event nodes remaining
- OnAnimatorIK(int layerIndex)
- OnApplicationFocus(bool hasFocus)
- OnApplicationPause(bool pauseStatus)
- OnAudioFilterRead(float[] data, int channels)
- OnCollisionEnter(Collision other)
- OnCollisionEnter2D(Collision2D other)
- OnCollisionExit(Collision other)
- OnCollisionExit2D(Collision2D other)
- OnCollisionStay(Collision other)
- OnCollisionStay2D(Collision2D other)
- OnControllerColliderHit(ControllerColliderHit hit)
- OnJointBreak(float breakForce)
- OnJointBreak2D(Joint2D brokenJoint)
- OnParticleCollision(GameObject other)
- OnRenderImage(RenderTexture src, RenderTexture dest)
- OnTriggerEnter(Collider other)
- OnTriggerEnter2D(Collider2D other)
- OnTriggerExit(Collider other)
- OnTriggerExit2D(Collider2D other)
- OnTriggerStay(Collider other)
- OnTriggerStay2D(Collider2D other)