internal static bool AddNewType(Type type) { if (!CanAddType(type)) { return(false); } var typeId = type.FullName; var label = DependencyTypeInfo.ToShortFullName(type.FullName); var settings = Get(); var newDepInfo = new DependencyTypeInfo(typeId, label) { defaultInstantiationMode = TemplateInstantiationMode.Clone, userAdded = true }; var depInfoWidth = EditorStyles.label.CalcSize(newDepInfo.content).x; if (depInfoWidth > m_MaxLabelWidth) { m_MaxLabelWidth = Mathf.Min(kMaxLabelWidth, depInfoWidth); } settings.dependencyTypeInfos.Add(newDepInfo); Sort(settings.dependencyTypeInfos); Save(); return(true); }
static IEnumerable <SearchProposition> BuildPropositionsFromTypes(IEnumerable <Type> types) { foreach (var t in types) { yield return(new SearchProposition( label: DependencyTypeInfo.ToShortFullName(t.FullName), type: t, icon: Search.SearchUtils.GetTypeIcon(t))); } }
private static SettingsProvider CreateSettings() { return(new SettingsProvider(k_SettingsKey, SettingsScope.Project) { keywords = new[] { "unity", "editor", "scene", "clone", "template" }, activateHandler = (text, rootElement) => { if (m_AllTypes == null) { m_AllTypes = TypeCache.GetTypesDerivedFrom <UnityEngine.Object>().ToArray(); m_AllTypesLabels = m_AllTypes.Select(t => DependencyTypeInfo.ToShortFullName(t.FullName)).ToArray(); } m_TypeToAddLabel = ""; m_TypeToAdd = null; }, label = "Scene Template", guiHandler = OnGUIHandler }); }