public VisualElement Build(InspectorDataProxy <Entity> proxy) { m_ObjectField = new ObjectField { label = proxy.Name }; m_ObjectField.RegisterValueChangedCallback(evt => ValueChanged(proxy, evt)); m_WorldManager = proxy.Session.GetManager <IWorldManager>(); m_AssetManager = proxy.Session.GetManager <IAssetManager>(); m_ComponentCache = proxy.Session.GetManager <IUnityComponentCacheManager>(); // TODO: Find correct mapping var withComponents = proxy.GetAttribute <EntityWithComponentsAttribute>(); if (null != withComponents) { m_ObjectField.objectType = DomainCache.GetAssetType(withComponents.Types.FirstOrDefault()); m_SimpleMode = false; } // Revert back to very generic if (null == m_ObjectField.objectType) { m_ObjectField.objectType = typeof(EntityReference); m_SimpleMode = true; } return(m_ObjectField); }