Exemplo n.º 1
0
        protected virtual void WritePrefabTypeFile(PrefabTypeMode prefabTypeMode, FileInfo file, string rawContents)
        {
            try
            {
                var prefabTypeModeStr = prefabTypeMode.ToString().ToLower();
                var contents          = string.Format(Template.FileTemplate, rawContents, prefabTypeModeStr).Replace("{{", "{").Replace("}}", "}");
                using (var stream = file.Open(FileMode.Create))
                    using (var writer = new StreamWriter(stream))
                    {
                        writer.Write(contents);
                    }

                AssetDatabase.Refresh();
                Debug.Log(this.ToString() + " Updated " + FILE_NAME);
            }
            catch (Exception e)
            {
                Debug.LogError(this.ToString() + " error in attempting to update " + FILE_NAME + ": " + e.Message.ToString() + "\n" + e.StackTrace.ToString());
            }
        }
Exemplo n.º 2
0
        protected virtual void EnsureMaxPrefabsLength(PrefabTypeMode mode)
        {
            // do not allow prefabs to surpass max value
            var max = 0;

            switch (mode)
            {
            case PrefabTypeMode.Byte:
            {
                max = byte.MaxValue;
                break;
            }

            case PrefabTypeMode.Short:
            {
                max = short.MaxValue;
                break;
            }

            case PrefabTypeMode.Int:
            {
                max = int.MaxValue;
                break;
            }

            default:
            {
                throw new NotImplementedException(this.ToString() + " VRPrefabTypeMode unhandled type == " + mode.ToString());
            }
            }

            if (_prefabs.arraySize > max)
            {
                Debug.LogWarning(this.ToString() + " does not support more than " + max.ToString() + " prefabs, due to the currently selected prefab type mode (" + mode.ToString() + "). Please change the VRPrefab Type Mode first if you need more prefabs than the current maximum. Removing the last " + (_prefabs.arraySize - max).ToString() + " prefabs from array.");

                for (int i = _prefabs.arraySize - 1; i >= max; i--)
                {
                    _prefabs.DeleteArrayElementAtIndex(i);
                }
            }
        }