Comments (14)
Hi, thanks for that report.
Unfortunately I could not reproduce that... Did a clean install in a new project help? What is your Unity version?
From what I can tell, the error appeared for you as a type I fetched using reflection from Unity is null. That's a very complex and weird situation, as the class UnityEngine.GUIClip is not even showing up in the Assembly browser (though searching for it results in that class existing).
I implemented it in that version to allow for grouped scaling. If you won't miss this feature, commenting out the contents of the functions BeginNoClip, MoveClipsUp and RestoreClips in GUIScalUtility should fix the error.
But I would prefer if we could sort that out:)
from node_editor_framework.
Forget about the Unity version - didn't read your header too closely;) I'm using the same version, I've no idea what could cause this. Afaik reflection works on every system the same.
from node_editor_framework.
Reflection works fine: GetTopRect is found (!= null), it is static and gets no arguments. The NullReferenceException is being thrown somewhere inside of the GetTopRect call, that's the point.
Brand new project, Unity 5.2.0f3, Mac OS X El Capitan, reproduced stably.
from node_editor_framework.
Hm, then it's, as you said, inside the call which we have no control over.
Could you try the following using GUIScaleUtility outside of the Node Editor?
Try a random reflection call, if you know about reflection
Call the GUIScaleUtility.Init function.
Try calling the property getTopRect, which is the source of the error above.
Try calling the property getTopRectScreenSpace, which is in the same class, UnityEngine.GUIClip.
If both throw the error but not the first call, it's because of the hidden class. I really have no clue why it's hidden, it's simply not accessible for you curiously. In that case, please call InspectType ("UnityEngine.GUIClip"), which is a test function I left there. Please post the console output here - there should be both above mentioned functions listed under private members.
Thanks!
from node_editor_framework.
Hm InspectType seems to be broken....
Here's the code for a window:
using UnityEngine;
using UnityEditor;
using System;
using System.Reflection;
using System.Collections;
public class NodeEditorReflectionTest : EditorWindow
{
[MenuItem ("Window/NodeEditor Reflection Test")]
public static void Create ()
{
EditorWindow.GetWindow<NodeEditorReflectionTest> ();
}
public void OnGUI ()
{
GUIScaleUtility.Init ();
if (GUILayout.Button ("GUILayoutUtulity.s_SpaceStyle / Random Reflection Stuff"))
{
Assembly UnityEngine = Assembly.GetAssembly (typeof (UnityEngine.GUI));
Type GUILayoutUtilityType = UnityEngine.GetType ("UnityEngine.GUILayoutUtility");
FieldInfo spaceStyle = GUILayoutUtilityType.GetField ("s_SpaceStyle", BindingFlags.Static | BindingFlags.NonPublic);
GUIStyle s_SpaceStyle = (GUIStyle)spaceStyle.GetValue (null);
Debug.Log ("Test finished, private GUIStyle '" + s_SpaceStyle.name + "' received");
}
if (GUILayout.Button ("GUIClip.getTopRect / Error Problem"))
{
Rect topRect = GUIScaleUtility.getTopRect;
Debug.Log ("Test finished, topRect " + topRect.ToString () + " received");
}
if (GUILayout.Button ("GUIClip.getTopRectScreenSpace / Potential Error Problem"))
{
Rect topRectScreenSpace = GUIScaleUtility.getTopRectScreenSpace;
Debug.Log ("Test finished, topRectScreenSpace " + topRectScreenSpace.ToString () + " received");
}
if (GUILayout.Button ("Inspect GUIClip"))
{
InspectType ("UnityEngine", "UnityEngine.GUIClip");
}
}
public static void InspectType (string assemblyName, string typeName)
{
Assembly UnityEngine = Assembly.Load (assemblyName);
Type type = UnityEngine.GetType (typeName);
foreach (MemberInfo member in type.GetMembers ())
{
Debug.Log (member.MemberType.ToString () + ": " + member.ToString ());
}
}
}
Make sure you have Node_Editor inside the project.
Can you post the results (errors) that occur when clicking any of the four buttons on the window ('Window/NodeEditor Reflection Test')?
from node_editor_framework.
- GUILayoutUtulity.s_SpaceStyle / Random Reflection Stuff:
Test finished, private GUIStyle '' received - GUIClip.getTopRect / Error Problem
NullReferenceException: Object reference not set to an instance of an object
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
GUIScaleUtility.get_getTopRect () (at Assets/Node_Editor/Framework/GUIScaleUtility.cs:16)
NodeEditorReflectionTest.OnGUI () (at Assets/Editor/NodeEditorReflectionTest.cs:30)
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222) - GUIClip.getTopRectScreenSpace / Potential Error Problem
Test finished, topRectScreenSpace (x:2.00, y:19.00, width:1148.00, height:573.00) received - Inspect GUIClip
Method: Boolean get_enabled()
Method: Vector2 Unclip(Vector2)
Method: Rect get_topmostRect()
Method: Rect Unclip(Rect)
Method: Vector2 Clip(Vector2)
Method: Rect Clip(Rect)
Method: Rect get_visibleRect()
Method: Vector2 GetAbsoluteMousePosition()
Method: Boolean Equals(System.Object)
Method: Int32 GetHashCode()
Method: System.Type GetType()
Method: System.String ToString()
Constructor: Void .ctor()
Property: System.Boolean enabled
Property: UnityEngine.Rect topmostRect
Property: UnityEngine.Rect visibleRect
My guess: the problem is inside of the Unity window/clip management logic in different operating systems (GetTopRect can be required to be called in specific moments). It is always a risk that when you use undocumented functionality, it may work unexpectedly. It is even more problematic with updates (Unity will not try to keep compatibility of such stuff).
from node_editor_framework.
Yes, I'll need to keep an eye on the updates to keep it supported.
I took your guess and updated the window. Just click the 'Start GUIClip.getTopRect complete test' button and cause as many event types as you can;) Each type will only be checked once. Please send me the output again:)
using UnityEngine;
using UnityEditor;
using System;
using System.Reflection;
using System.Collections.Generic;
public class NodeEditorReflectionTest : EditorWindow
{
[MenuItem ("Window/NodeEditor Reflection Test")]
public static void Create ()
{
EditorWindow.GetWindow<NodeEditorReflectionTest> ();
}
public bool performTest = false;
public List<EventType> checkedTypes = new List<EventType> ();
public void OnGUI ()
{
GUIScaleUtility.Init ();
if (GUILayout.Button ("GUILayoutUtulity.s_SpaceStyle / Random Reflection Stuff"))
{
Assembly UnityEngine = Assembly.GetAssembly (typeof (UnityEngine.GUI));
Type GUILayoutUtilityType = UnityEngine.GetType ("UnityEngine.GUILayoutUtility");
FieldInfo spaceStyle = GUILayoutUtilityType.GetField ("s_SpaceStyle", BindingFlags.Static | BindingFlags.NonPublic);
GUIStyle s_SpaceStyle = (GUIStyle)spaceStyle.GetValue (null);
Debug.Log ("Test finished, private GUIStyle '" + s_SpaceStyle.name + "' received");
}
if (GUILayout.Button ("GUIClip.getTopRect / Error Problem"))
{
Rect topRect = GUIScaleUtility.getTopRect;
Debug.Log ("Test finished, topRect " + topRect.ToString () + " received");
}
if (GUILayout.Button ("GUIClip.getTopRectScreenSpace / Potential Error Problem"))
{
Rect topRectScreenSpace = GUIScaleUtility.getTopRectScreenSpace;
Debug.Log ("Test finished, topRectScreenSpace " + topRectScreenSpace.ToString () + " received");
}
if (GUILayout.Button ("Inspect GUIClip"))
{
InspectType ("UnityEngine", "UnityEngine.GUIClip");
}
if (GUILayout.Button ("Start GUIClip.getTopRect complete test"))
{
performTest = !performTest;
checkedTypes = new List<EventType> ();
}
try
{
if (performTest && !checkedTypes.Contains (Event.current.type))
{
checkedTypes.Add (Event.current.type);
Rect topRect = GUIScaleUtility.getTopRect;
Debug.Log ("Test in " + Event.current.type.ToString () + " suceeded! topRect " + topRect.ToString () + " received");
}
}
catch (Exception e)
{
Debug.LogError ("Test in " + Event.current.type.ToString () + " failed! Error:" + e.ToString ());
}
}
public static void InspectType (string assemblyName, string typeName)
{
Assembly UnityEngine = Assembly.Load (assemblyName);
Type type = UnityEngine.GetType (typeName);
foreach (MemberInfo member in type.GetMembers ())
{
Debug.Log (member.MemberType.ToString () + ": " + member.ToString ());
}
}
}
Edit: Fixed checking events multiple times
from node_editor_framework.
All failed:
Test in used failed! Error:System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object
at (wrapper managed-to-native) UnityEngine.GUIClip:GetTopRect ()
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x000d0] in /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222
--- End of inner exception stack trace ---
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x000eb] in /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232
at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115
at GUIScaleUtility.get_getTopRect () [0x00000] in /Users/universal/projects/temp/tmp/Assets/Node_Editor/Framework/GUIScaleUtility.cs:16
at NodeEditorReflectionTest.OnGUI () [0x00166] in /Users/universal/projects/temp/tmp/Assets/Editor/NodeEditorReflectionTest.cs:60
UnityEngine.Debug:LogError(Object)
NodeEditorReflectionTest:OnGUI() (at Assets/Editor/NodeEditorReflectionTest.cs:66)
UnityEditor.DockArea:OnGUI()
Test in Layout failed! Error:System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object
at (wrapper managed-to-native) UnityEngine.GUIClip:GetTopRect ()
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x000d0] in /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222
--- End of inner exception stack trace ---
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x000eb] in /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232
at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115
at GUIScaleUtility.get_getTopRect () [0x00000] in /Users/universal/projects/temp/tmp/Assets/Node_Editor/Framework/GUIScaleUtility.cs:16
at NodeEditorReflectionTest.OnGUI () [0x00166] in /Users/universal/projects/temp/tmp/Assets/Editor/NodeEditorReflectionTest.cs:60
UnityEngine.Debug:LogError(Object)
NodeEditorReflectionTest:OnGUI() (at Assets/Editor/NodeEditorReflectionTest.cs:66)
UnityEditor.DockArea:OnGUI()
Test in Repaint failed! Error:System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object
at (wrapper managed-to-native) UnityEngine.GUIClip:GetTopRect ()
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x000d0] in /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222
--- End of inner exception stack trace ---
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x000eb] in /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232
at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115
at GUIScaleUtility.get_getTopRect () [0x00000] in /Users/universal/projects/temp/tmp/Assets/Node_Editor/Framework/GUIScaleUtility.cs:16
at NodeEditorReflectionTest.OnGUI () [0x00166] in /Users/universal/projects/temp/tmp/Assets/Editor/NodeEditorReflectionTest.cs:60
UnityEngine.Debug:LogError(Object)
NodeEditorReflectionTest:OnGUI() (at Assets/Editor/NodeEditorReflectionTest.cs:66)
UnityEditor.DockArea:OnGUI()
Test in mouseDrag failed! Error:System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object
at (wrapper managed-to-native) UnityEngine.GUIClip:GetTopRect ()
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x000d0] in /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222
--- End of inner exception stack trace ---
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x000eb] in /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232
at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115
at GUIScaleUtility.get_getTopRect () [0x00000] in /Users/universal/projects/temp/tmp/Assets/Node_Editor/Framework/GUIScaleUtility.cs:16
at NodeEditorReflectionTest.OnGUI () [0x00166] in /Users/universal/projects/temp/tmp/Assets/Editor/NodeEditorReflectionTest.cs:60
UnityEngine.Debug:LogError(Object)
NodeEditorReflectionTest:OnGUI() (at Assets/Editor/NodeEditorReflectionTest.cs:66)
UnityEditor.DockArea:OnGUI()
Test in mouseUp failed! Error:System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object
at (wrapper managed-to-native) UnityEngine.GUIClip:GetTopRect ()
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x000d0] in /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222
--- End of inner exception stack trace ---
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x000eb] in /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232
at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115
at GUIScaleUtility.get_getTopRect () [0x00000] in /Users/universal/projects/temp/tmp/Assets/Node_Editor/Framework/GUIScaleUtility.cs:16
at NodeEditorReflectionTest.OnGUI () [0x00166] in /Users/universal/projects/temp/tmp/Assets/Editor/NodeEditorReflectionTest.cs:60
UnityEngine.Debug:LogError(Object)
NodeEditorReflectionTest:OnGUI() (at Assets/Editor/NodeEditorReflectionTest.cs:66)
UnityEditor.DockArea:OnGUI()
It doesn't prove anything. Yeah, it's not available in OnGUI, but that's it.
Is there any way to avoid using it?..
from node_editor_framework.
Not related to Events then, either:( Sad is I can't test it myself, so figuring this out would only go with you and would probably take forever;)
I just wrote a version that allows to avoid this. Replace the region ScaleArea inside GUIScaleUtility with the following code:
#region Scale Area
/// <summary>
/// Begins a scaled local area.
/// Returns vector to offset GUI controls with to account for zooming to the pivot.
/// Using adjustGUILayout does that automatically for GUILayout rects.
/// </summary>
public static Vector2 BeginScale (ref Rect rect, Vector2 zoomPivot, float zoom, bool adjustGUILayout)
{
//GUIScaleUtility.BeginNoClip ();
//Rect screenRect = GUIScaleUtility.InnerToScreenRect (rect);
GUI.EndGroup ();
Rect screenRect = rect;
#if UNITY_EDITOR
if (!Application.isPlaying)
screenRect.y += 23;
#endif
// The Rect of the new clipping group to draw our nodes in
rect = ScaleRect (screenRect, screenRect.position + zoomPivot, new Vector2 (zoom, zoom));
// Now continue drawing using the new clipping group
GUI.BeginGroup (rect);
rect.position = Vector2.zero; // Adjust because we entered the new group
// Because I currently found no way to actually scale to the center of the window rather than (0, 0),
// I'm going to cheat and just pan it accordingly to let it appear as if it would scroll to the center
// Note, due to that, other controls are still scaled to (0, 0)
Vector2 zoomPosAdjust = rect.center - screenRect.size/2 + zoomPivot;
// For GUILayout, we can make this adjustment here
adjustedGUILayout.Add (adjustGUILayout);
if (adjustGUILayout)
{
GUILayout.BeginHorizontal ();
GUILayout.Space (rect.center.x - screenRect.size.x + zoomPivot.x);
GUILayout.BeginVertical ();
GUILayout.Space (rect.center.y - screenRect.size.y + zoomPivot.y);
}
// Take a matrix backup to restore back later on
GUIMatrices.Add (GUI.matrix);
// Scale GUI.matrix. After that we have the correct clipping group again.
GUIUtility.ScaleAroundPivot (new Vector2 (1/zoom, 1/zoom), zoomPosAdjust);
return zoomPosAdjust;
}
/// <summary>
/// Ends a scale region
/// </summary>
public static void EndScale ()
{
// Set last matrix and clipping group
if (GUIMatrices.Count == 0 || adjustedGUILayout.Count == 0)
throw new UnityException ("GUIScaleutility: You are ending more scales than you are beginning!");
GUI.matrix = GUIMatrices[GUIMatrices.Count-1];
GUIMatrices.RemoveAt (GUIMatrices.Count-1);
// End GUILayout zoomPosAdjustment
if (adjustedGUILayout[adjustedGUILayout.Count-1])
{
GUILayout.EndVertical ();
GUILayout.EndHorizontal ();
}
adjustedGUILayout.RemoveAt (adjustedGUILayout.Count-1);
GUI.EndGroup ();
#if UNITY_EDITOR
if (!Application.isPlaying)
GUI.BeginClip (new Rect (0, 23, Screen.width, Screen.height-23));
else
GUI.BeginClip (new Rect (0, 0, Screen.width, Screen.height));
#else
GUI.BeginClip (new Rect (0, 0, Screen.width, Screen.height));
#endif
// GUIScaleUtility.RestoreClips ();
}
#endregion
That should make sure the three functions in Clips Hierarchy region are not called anymore. Note that you no longer can use the NodeEditor canvas in groups, though - that doesn't affect the current Editor Window nor the runtime demo, aslong as there are no top groups, everything is fine. (Runtime does NEED one top group, but no more! Or you have to delete the first EndGroup in BeginScale and the last BeginClip in EndScale).
I'll try to automate that fix for anyone getting those errors - I'll leave this issue open!
from node_editor_framework.
Thank you! I'll try using it tomorrow.
Making this change in a branch would be nice. Or, maybe even better, with #if.
from node_editor_framework.
I'll do, after I got the approval of you that it even works :)
from node_editor_framework.
@Seneral
Seems to work fine with that replacement!
from node_editor_framework.
Great! :)
from node_editor_framework.
I the latest commit I added a compability mode which should automatically be triggered and inform the user about it.
from node_editor_framework.
Related Issues (20)
- The connections will miss when I add a new node. HOT 2
- GUIScaleUtility.cs Init Method NullReferenceException in Unity 2019.1.2f1 HOT 10
- Insane Bug from using RTEditorGUI.EnumPopup() HOT 3
- XML not saving node values HOT 10
- Is Project Active and Package Support? HOT 15
- `PlayModeStateChange' could not be found. Are you missing a using directive or an assembly reference? HOT 3
- [Solved] Context menu not showing up. HOT 2
- Multiple instances of node editors open at once HOT 1
- Toolbar is not showing up HOT 4
- All data is lost when I change the scene, even though I have extra saved as an asset file HOT 4
- How to input multiple outputs to a node? HOT 8
- Apple M1 computers not displaying Bezier curves HOT 3
- Added one node. Then it stoped working. (Remove the node, re-install, sitll not working) Unity 2020.2 LTS
- Implementation of a Logic Graph HOT 7
- XML import issue on UWP
- I deleted the ScriptableObjects in Assets/DefaultEditorResources/Node_Editor_Framework HOT 3
- Making children of node drag along with parent HOT 5
- Functional Nodes that are not tied to the Node Editor Window HOT 6
- Loading canvas based on Selection.activeTransform? HOT 4
- seems undo pro doesnt work with unity 2022.2.8 not sure what version it stopped working at HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from node_editor_framework.