コード例 #1
0
        void DoGetEnumValues()
        {
            //reset results
            saveAsEnumArray.Resize(0);
            Array.Clear(saveAsEnumArray.Values, 0, saveAsEnumArray.Length);
            saveAsStringArray.Resize(0);
            Array.Clear(saveAsStringArray.Values, 0, saveAsStringArray.Length);
            saveAsString.Value = "";

            //get Types
            var enumType  = enumVariable.Value.GetType();
            var arrayType = saveAsEnumArray.GetType();

            //check if Types match
            if (enumType != arrayType)
            {
                Debug.LogWarning("Array and Enum are not of the same Enum-Type. Please match them in the Variables-Editor.");
            }

            foreach (var singleItem in Enum.GetValues(enumType))
            {
                saveAsEnumArray.Resize(saveAsEnumArray.Length + 1);
                saveAsEnumArray.Set(saveAsEnumArray.Length - 1, singleItem);

                saveAsStringArray.Resize(saveAsStringArray.Length + 1);
                saveAsStringArray.Set(saveAsStringArray.Length - 1, singleItem.ToString());

                saveAsString.Value += singleItem.ToString() + ", ";
            }
            saveAsString.Value = saveAsString.Value.TrimEnd(", ".ToCharArray());
        }