Ejemplo n.º 1
0
        static bool PropertyField(this DictionaryAsset asset, string name, string displayName, out object value, Func <object> getValue)
        {
            if (serializedAsset == null)
            {
                throw new Exception("Didn't set serializedAsset field before draw Propertyfield.");
            }
            EditorGUI.BeginChangeCheck();
            var prop = serializedAsset.FindProperty(name);

            if (prop == null)
            {
                throw new Exception($"The field \"{name}\" is not existed.");
            }
            EditorGUILayout.PropertyField(prop, displayName != null ? new GUIContent(displayName) : null);
            if (EditorGUI.EndChangeCheck())
            {
                asset[name] = getValue();
                value       = asset[name];
                return(true);
            }
            else
            {
                value = asset[name];
                return(false);
            }
        }
        private static void BuildBoltUnitOptions()
        {
            DictionaryAsset projectSettings = AssetDatabase.LoadAssetAtPath(PathUtility.FromProject(LudiqCore.Paths.projectSettings), typeof(DictionaryAsset)) as DictionaryAsset;

            List <LooseAssemblyName> assemblyOptions = projectSettings.dictionary["assemblyOptions"] as List <LooseAssemblyName>;

            if (!assemblyOptions.Contains("FMODUnity"))
            {
                assemblyOptions.Add("FMODUnity");
            }

            if (!assemblyOptions.Contains("FMODUnityResonance"))
            {
                assemblyOptions.Add("FMODUnityResonance");
            }

            List <Type> typeOptions                = projectSettings.dictionary["typeOptions"] as List <Type>;
            Assembly    fmodUnityAssembly          = Assembly.Load("FMODUnity");
            Assembly    fmodUnityResonanceAssembly = Assembly.Load("FMODUnityResonance");

            List <Type> allTypes = new List <Type>(GetTypesForNamespace(fmodUnityAssembly, "FMOD"));

            allTypes.AddRange(GetTypesForNamespace(fmodUnityAssembly, "FMOD.Studio"));

            foreach (Type type in allTypes)
            {
                if (!typeOptions.Contains(type))
                {
                    typeOptions.Add(type);
                }
            }

            UnitBase.Build();
        }
Ejemplo n.º 3
0
        public static bool ObjectPropertyField(this DictionaryAsset asset, string name, out object value, string displayName = null)
        {
            object objValue;
            var    result = PropertyField(asset, name, displayName, out objValue, () => serializedAsset.FindProperty(name).objectReferenceValue);

            value = objValue;
            return(result);
        }
Ejemplo n.º 4
0
        public static bool BoolPropertyField(this DictionaryAsset asset, string name, out bool value, string displayName = null)
        {
            object objValue;
            var    result = PropertyField(asset, name, displayName, out objValue, () => serializedAsset.FindProperty(name).boolValue);

            value = (bool)objValue;
            return(result);
        }
Ejemplo n.º 5
0
        private static void BuildBoltUnitOptions()
        {
#if (UNITY_BOLT_EXIST)
            DictionaryAsset          projectSettings = AssetDatabase.LoadAssetAtPath(PathUtility.FromProject(LudiqCore.Paths.projectSettings), typeof(DictionaryAsset)) as DictionaryAsset;
            List <LooseAssemblyName> assemblyOptions = projectSettings.dictionary["assemblyOptions"] as List <LooseAssemblyName>;
#else
            List <LooseAssemblyName> assemblyOptions = BoltCore.Configuration.assemblyOptions;
#endif

            if (!assemblyOptions.Contains("FMODUnity"))
            {
                assemblyOptions.Add("FMODUnity");
            }

            if (!assemblyOptions.Contains("FMODUnityResonance"))
            {
                assemblyOptions.Add("FMODUnityResonance");
            }
#if (UNITY_BOLT_EXIST)
            List <Type> typeOptions = projectSettings.dictionary["typeOptions"] as List <Type>;
#else
            List <Type> typeOptions = BoltCore.Configuration.typeOptions;
#endif
            Assembly fmodUnityAssembly          = Assembly.Load("FMODUnity");
            Assembly fmodUnityResonanceAssembly = Assembly.Load("FMODUnityResonance");

            List <Type> allTypes = new List <Type>(GetTypesForNamespace(fmodUnityAssembly, "FMOD"));
            allTypes.AddRange(GetTypesForNamespace(fmodUnityAssembly, "FMOD.Studio"));

            foreach (Type type in allTypes)
            {
                if (!typeOptions.Contains(type))
                {
                    typeOptions.Add(type);
                }
            }

            Codebase.UpdateSettings();
#if (UNITY_BOLT_EXIST)
            UnitBase.Build();
#else
            UnitBase.Rebuild();
#endif
        }
Ejemplo n.º 6
0
        public static bool FloatPropertyField(this DictionaryAsset asset, string name, string displayName = null)
        {
            object objValue;

            return(PropertyField(asset, name, displayName, out objValue, () => serializedAsset.FindProperty(name).floatValue));
        }