public static EntityGroupGraph CreateFromEntityGroup(UTinyEntityGroup entityGroup) { var graph = new EntityGroupGraph(entityGroup); graph.SyncFromUTiny(); foreach (var entity in entityGroup.Entities.Select(entityRef => entityRef.Dereference(entityGroup.Registry))) { if (null == entity) { continue; } entity.EntityGroup = entityGroup; graph.CreateLink(entity); } graph.CommitToUnity(); foreach (var entity in entityGroup.Entities.Select(entityRef => entityRef.Dereference(entityGroup.Registry))) { if (null == entity) { continue; } BindingsHelper.RunAllBindings(entity); } return(graph); }
private UTinyEntityView CreateLink(UTinyEntity entity) { try { var entityRef = (UTinyEntity.Reference)entity; if (null != entity.View && entity.View) { entity.View.EntityRef = entityRef; entity.View.Registry = entity.Registry; entity.View.gameObject.SetActive(entity.Enabled); entity.View.gameObject.layer = entity.Layer; return(null); } // We may have recreated the entity, try to find an active view { var scene = UTinyEditorApplication.EntityGroupManager.UnityScratchPad; foreach (var r in scene.GetRootGameObjects()) { foreach (var v in r.GetComponentsInChildren <UTinyEntityView>()) { if (v.EntityRef.Equals(entityRef)) { entity.View = v; entity.View.EntityRef = entityRef; entity.View.Registry = entity.Registry; v.gameObject.SetActive(entity.Enabled); v.gameObject.layer = entity.Layer; return(null); } } } } var go = new GameObject(entity.Name); var view = go.AddComponent <UTinyEntityView>(); view.gameObject.SetActive(entity.Enabled); view.gameObject.layer = entity.Layer; view.EntityRef = entityRef; view.Registry = entity.Registry; entity.View = view; return(view); } finally { // At this point, it is not clear if the bindings have been added or not (we may have undo-ed something). entity.OnComponentAdded -= HandleComponentAdded; entity.OnComponentRemoved -= HandleComponentRemoved; entity.OnComponentAdded += HandleComponentAdded; entity.OnComponentRemoved += HandleComponentRemoved; BindingsHelper.RunAllBindings(entity); } }
private void RunAllTheBidings() { var entityGroupManager = UTinyEditorApplication.EntityGroupManager; var registry = UTinyEditorApplication.Registry; if (null == entityGroupManager || null == registry) { return; } foreach (var entity in entityGroupManager.LoadedEntityGroups.Deref(registry).SelectMany(s => s.Entities).Deref(registry)) { BindingsHelper.RunAllBindings(entity); } }
private bool AddToEntity(UTinyEntity.Reference entityRef, Sprite sprite, bool runBindings) { var entity = entityRef.Dereference(m_Context.Registry); entity.Name = sprite?.name ?? "NullSprite"; var renderer = entity.GetOrAddComponent(Registry.GetSprite2DRendererType()); renderer["sprite"] = sprite; if (runBindings) { BindingsHelper.RunAllBindings(entity); } UTinyHierarchyWindow.InvalidateSceneGraph(); return(true); }
private bool AddToEntity(UTinyEntity.Reference entityRef, Font font, bool runBindings) { var entity = entityRef.Dereference(m_Context.Registry); entity.Name = font.name; var renderer = entity.GetOrAddComponent(Registry.GetTextRendererType()); renderer["text"] = "Sample Text"; renderer["font"] = font; if (runBindings) { BindingsHelper.RunAllBindings(entity); } UTinyHierarchyWindow.InvalidateSceneGraph(); return(true); }
private bool AddToEntity(UTinyEntity.Reference entityRef, AudioClip audioClip, bool runBindings) { var entity = entityRef.Dereference(m_Context.Registry); entity.Name = audioClip.name; var audioSource = entity.GetOrAddComponent(Registry.GetAudioSourceType()); audioSource.Refresh(); audioSource["clip"] = audioClip; audioSource["volume"] = 1.0f; if (runBindings) { BindingsHelper.RunAllBindings(entity); } UTinyHierarchyWindow.InvalidateSceneGraph(); return(true); }
private bool AddToEntity(UTinyEntity.Reference entityRef, Sprite sprite, bool runBindings) { var entity = entityRef.Dereference(m_Context.Registry); entity.Name = sprite?.name ?? "NullSprite"; var renderer = entity.GetOrAddComponent(Registry.GetSprite2DRendererType()); renderer["sprite"] = sprite; if (runBindings) { BindingsHelper.RunAllBindings(entity); } UTinyEventDispatcher <ChangeSource> .Dispatch(ChangeSource.SceneGraph); return(true); }
private bool AddToEntity(UTinyEntity.Reference entityRef, Font font, bool runBindings) { var entity = entityRef.Dereference(m_Context.Registry); entity.Name = font.name; var renderer = entity.GetOrAddComponent(Registry.GetTextRendererType()); renderer["text"] = "Sample Text"; renderer["font"] = font; if (runBindings) { BindingsHelper.RunAllBindings(entity); } UTinyEventDispatcher <ChangeSource> .Dispatch(ChangeSource.SceneGraph); return(true); }
private bool AddToEntity(UTinyEntity.Reference entityRef, Texture2D texture, bool runBindings) { var entity = entityRef.Dereference(m_Context.Registry); entity.Name = texture.name; var image2d = entity.GetOrAddComponent(Registry.GetImage2DType()); image2d.Refresh(); image2d["imageFile"] = texture; // @TODO Pull from texture importer image2d["pixelsToWorldUnits"] = 1.0f; if (runBindings) { BindingsHelper.RunAllBindings(entity); } UTinyHierarchyWindow.InvalidateSceneGraph(); return(true); }