示例#1
0
 public static bool SetManagedReferenceIdForObject(UnityObject obj, object scriptObj, RefId refId)
 {
     return(ManagedReferenceUtility.SetManagedReferenceIdForObject(obj, scriptObj, refId));
 }
 public void GetType_ThrowsWhenNameIsNullOrEmpty()
 {
     Assert.Throws <ArgumentException>(() => ManagedReferenceUtility.GetType(null));
     Assert.Throws <ArgumentException>(() => ManagedReferenceUtility.GetType(string.Empty));
 }
示例#3
0
        void ShowAddItemMenu(ReorderableList list, int index)
        {
            var menu          = new GenericMenu();
            var metadataTypes = TypeCache.GetTypesDerivedFrom <IMetadata>();

            for (int i = 0; i < metadataTypes.Count; ++i)
            {
                var md = metadataTypes[i];
                if (md.IsAbstract)
                {
                    continue;
                }

                var itemAttribute = md.GetCustomAttribute <MetadataAttribute>();
                if (itemAttribute == null)
                {
                    continue;
                }

                if ((itemAttribute.AllowedTypes & m_MetadataType.Type) == 0)
                {
                    continue;
                }

                bool enabled = true;
                if (!itemAttribute.AllowMultiple)
                {
                    for (int j = 0; j < list.ListProperty.arraySize; ++j)
                    {
                        var typeName = list.ListProperty.GetArrayElementAtIndex(j).managedReferenceFullTypename;
                        if (!string.IsNullOrEmpty(typeName))
                        {
                            var type = ManagedReferenceUtility.GetType(list.ListProperty.GetArrayElementAtIndex(j).managedReferenceFullTypename);
                            if (type == md)
                            {
                                enabled = false;
                                break;
                            }
                        }
                    }
                }

                var name = itemAttribute.MenuItem;
                if (string.IsNullOrEmpty(name))
                {
                    name = ObjectNames.NicifyVariableName(md.Name);
                }

                var label = new GUIContent(name);
                if (enabled)
                {
                    menu.AddItem(label, false, () =>
                    {
                        AddManagedItem(list, md, index);
                    });
                }
                else
                {
                    menu.AddDisabledItem(label);
                }
            }

            menu.ShowAsContext();
        }
 public void GetDisplayName_ReurnsEmptyWhenNameIsNullOrEmpty()
 {
     Assert.AreEqual(ManagedReferenceUtility.Empty, ManagedReferenceUtility.GetDisplayName(null));
     Assert.AreEqual(ManagedReferenceUtility.Empty, ManagedReferenceUtility.GetDisplayName(string.Empty));
 }