コード例 #1
0
        protected override void OnDrawProperties(ref Rect position, NovelDataEditor editor, SerializedProperty serializedParameters, bool isActive, bool isFocused)
        {
            position.y += position.height;
            var serializedName = serializedParameters.GetArrayElementAtIndex(0);

            serializedName.stringValue = EditorGUI.TextField(position, serializedName.stringValue);
        }
コード例 #2
0
        protected override void OnDrawProperties(ref Rect position, NovelDataEditor editor, SerializedProperty serializedParameters, bool isActive, bool isFocused)
        {
            var serializedValueName = serializedParameters.GetArrayElementAtIndex(0);
            var serializedParameter = serializedParameters.GetArrayElementAtIndex(1);

            var valueName = serializedValueName.stringValue;
            var parameter = serializedParameter.stringValue;

            position.y += position.height;
            EditorGUI.LabelField(position, string.Format("{0} ← {0} + {1}", valueName, parameter));

            position.y     += position.height;
            position.width *= 0.5f;
            serializedValueName.stringValue = EditorGUI.TextField(position, serializedValueName.stringValue);

            // 先頭に$をつける(引数かどうかの区別をつけやすくする為)
            if (0 < serializedValueName.stringValue.Length && serializedValueName.stringValue[0] != '$')
            {
                serializedValueName.stringValue = serializedValueName.stringValue.Insert(0, "$");
            }

            position.x += position.width;
            serializedParameter.stringValue = EditorGUI.FloatField(position, serializedParameter.stringValue.ParseFloat()).ToString();

            position.x     -= position.width;
            position.width *= 2.0f;
        }
コード例 #3
0
        protected override void OnDrawProperties(ref Rect position, NovelDataEditor editor, SerializedProperty serializedParameters, bool isActive, bool isFocused)
        {
            var serializedFileName    = serializedParameters.GetArrayElementAtIndex(0);
            var serializedButtonCount = serializedParameters.GetArrayElementAtIndex(1);

            position.y += position.height;
            serializedFileName.stringValue = EditorGUI.TextField(position, "ファイル名", serializedFileName.stringValue);
            position.y += position.height;

            var buttonCount = EditorGUI.IntSlider(position, "ボタン数", serializedButtonCount.stringValue.ParseInt(), 1, 6);

            serializedButtonCount.stringValue = buttonCount.ToString();
            position.y += position.height;

            for (int i = 0; i < buttonCount; ++i)
            {
                var serializedButtonName = serializedParameters.GetArrayElementAtIndex(i * 2 + 2);
                var serializedJumpLabel  = serializedParameters.GetArrayElementAtIndex(i * 2 + 3);

                serializedButtonName.stringValue = EditorGUI.TextField(position, "選択肢" + (i + 1), serializedButtonName.stringValue);
                position.y     += position.height;
                position.x     += NovelDataEditor.CommandParameterPaddingWidth;
                position.width -= NovelDataEditor.CommandParameterPaddingWidth;
                serializedJumpLabel.stringValue = EditorGUI.TextField(position, "ジャンプ先", serializedJumpLabel.stringValue);
                position.y     += position.height;
                position.x     -= NovelDataEditor.CommandParameterPaddingWidth;
                position.width += NovelDataEditor.CommandParameterPaddingWidth;
            }
        }
コード例 #4
0
        protected override void OnDrawProperties(ref Rect position, NovelDataEditor editor, SerializedProperty serializedParameters, bool isActive, bool isFocused)
        {
            var serializedHandleName = serializedParameters.GetArrayElementAtIndex(0);
            var serializedFilePath   = serializedParameters.GetArrayElementAtIndex(1);
            var serializedTime       = serializedParameters.GetArrayElementAtIndex(2);
            var serializedIsSmooth   = serializedParameters.GetArrayElementAtIndex(3);

            position.x     += NovelDataEditor.CommandPropertyWidth;
            position.width -= NovelDataEditor.CommandPropertyWidth;

            var isRapid = EditorGUI.ToggleLeft(position, "即時切替(フェードなし)", serializedIsSmooth.stringValue.ParseBool());

            serializedIsSmooth.stringValue = isRapid.ToString();
            position.x     -= NovelDataEditor.CommandPropertyWidth;
            position.width += NovelDataEditor.CommandPropertyWidth;
            position.y     += position.height;

            //if (string.IsNullOrWhiteSpace(serializedHandleName.stringValue))
            {
                //	serializedHandleName.stringValue = "Background";
            }

            serializedHandleName.stringValue = EditorGUI.TextField(position, "ハンドル名", serializedHandleName.stringValue);
            position.y += position.height;
            serializedFilePath.stringValue = EditorGUI.TextField(position, "ファイル名", serializedFilePath.stringValue);
            position.y += position.height;

            if (isRapid)
            {
                serializedTime.stringValue = "0";
                return;
            }

            serializedTime.stringValue = EditorGUI.FloatField(position, "切替時間(フェード)", serializedTime.stringValue.ParseFloat()).ToString();
        }
コード例 #5
0
        protected override void OnDrawProperties(ref Rect position, NovelDataEditor editor, SerializedProperty serializedParameters, bool isActive, bool isFocused)
        {
            position.y += position.height;
            //追加するキャラクターのインデックス
            var serializedCharaIndex = serializedParameters.GetArrayElementAtIndex(0);

            serializedCharaIndex.stringValue = EditorGUI.IntField(position, "キャラクター番号", serializedCharaIndex.stringValue.ParseInt()).ToString();
        }
コード例 #6
0
        protected override void OnDrawProperties(ref Rect position, NovelDataEditor editor, SerializedProperty serializedParameters, bool isActive, bool isFocused)
        {
            position.y      += position.height;
            position.height += NovelUtilityEditor.SingleLineHeight;

            var serializedText = serializedParameters.GetArrayElementAtIndex(0);

            serializedText.stringValue = EditorGUI.TextArea(position, serializedText.stringValue);
        }
コード例 #7
0
        protected override void OnDrawProperties(ref Rect position, NovelDataEditor editor, SerializedProperty serializedParameters, bool isActive, bool isFocused)
        {
            var serializedTime = serializedParameters.GetArrayElementAtIndex(0);

            position.x                += NovelDataEditor.CommandPropertyWidth;
            position.width            -= NovelDataEditor.CommandPropertyWidth;
            serializedTime.stringValue = EditorGUI.FloatField(position, "待機時間(秒)", serializedTime.stringValue.ParseFloat()).ToString();
            position.x                -= NovelDataEditor.CommandPropertyWidth;
            position.width            += NovelDataEditor.CommandPropertyWidth;
        }
コード例 #8
0
        protected override void OnDrawProperties(ref Rect position, NovelDataEditor editor, SerializedProperty serializedParameters, bool isActive, bool isFocused)
        {
            var serializedLabelName = serializedParameters.GetArrayElementAtIndex(0);

            position.x     += NovelDataEditor.CommandPropertyWidth;
            position.width -= NovelDataEditor.CommandPropertyWidth;
            serializedLabelName.stringValue = EditorGUI.TextField(position, "ラベル名", serializedLabelName.stringValue);
            position.x     -= NovelDataEditor.CommandPropertyWidth;
            position.width += NovelDataEditor.CommandPropertyWidth;
        }
コード例 #9
0
        protected override void OnDrawProperties(ref Rect position, NovelDataEditor editor, SerializedProperty serializedParameters, bool isActive, bool isFocused)
        {
            var serializedHandleName = serializedParameters.GetArrayElementAtIndex(0);
            var serializedTime       = serializedParameters.GetArrayElementAtIndex(1);

            position.y += position.height;
            serializedHandleName.stringValue = EditorGUI.TextField(position, "ハンドル名", serializedHandleName.stringValue);
            position.y += position.height;
            serializedTime.stringValue = EditorGUI.FloatField(position, "表示時間(フェードアウト)", serializedTime.stringValue.ParseFloat()).ToString();
        }
コード例 #10
0
        protected override void OnDrawProperties(ref Rect position, NovelDataEditor editor, SerializedProperty serializedParameters, bool isActive, bool isFocused)
        {
            position.y += position.height;
            //取得するアイテムのインデックス
            var serializedItemIndex = serializedParameters.GetArrayElementAtIndex(0);

            serializedItemIndex.stringValue = EditorGUI.IntField(position, "アイテム番号", serializedItemIndex.stringValue.ParseInt()).ToString();

            position.y += position.height;
            //アイテムの個数
            var serializedItemNum = serializedParameters.GetArrayElementAtIndex(1);

            serializedItemNum.stringValue = EditorGUI.IntField(position, "取得個数", serializedItemNum.stringValue.ParseInt()).ToString();
        }
コード例 #11
0
        /// <summary>
        /// プロパティの描画
        /// OnDrawPropertiesの描画にかかった高さを計算している
        /// </summary>
        public void DrawProperties(int index, ref Rect position, NovelDataEditor editor, SerializedProperty serializedParameters, bool isActive, bool isFocused)
        {
            var height = position.y;

            OnDrawProperties(ref position, editor, serializedParameters, isActive, isFocused);
            height = position.y + position.height - height;

            if (heights != null)
            {
                if (heights.Count <= index)
                {
                    return;
                }
                heights[index] = height;
            }
        }
コード例 #12
0
        protected override void OnDrawProperties(ref Rect position, NovelDataEditor editor, SerializedProperty serializedParameters, bool isActive, bool isFocused)
        {
            var serializedLabelName = serializedParameters.GetArrayElementAtIndex(0);
            var lineCount           = serializedLabelName.stringValue.Count(c => c == '\n') + 1;

            if (1 < lineCount)
            {
                position.y += position.height;

                if (isActive)
                {
                    position.height = NovelUtilityEditor.TextAreaSingleLineHeight * lineCount;
                    serializedLabelName.stringValue = EditorGUI.TextArea(position, serializedLabelName.stringValue);
                }
                else
                {
                    position.height = NovelUtilityEditor.TextAreaSingleLineHeight * lineCount;
                    EditorGUI.LabelField(position, serializedLabelName.stringValue);
                }

                position.y     += position.height;
                position.y     -= NovelUtilityEditor.SingleLineHeight;
                position.height = NovelUtilityEditor.SingleLineHeight;
            }
            else
            {
                position.x     += NovelDataEditor.CommandPropertyWidth;
                position.width -= NovelDataEditor.CommandPropertyWidth;

                if (isActive)
                {
                    serializedLabelName.stringValue = EditorGUI.TextArea(position, serializedLabelName.stringValue);
                }
                else
                {
                    EditorGUI.LabelField(position, serializedLabelName.stringValue);
                }

                position.x     -= NovelDataEditor.CommandPropertyWidth;
                position.width += NovelDataEditor.CommandPropertyWidth;
            }
        }
コード例 #13
0
        protected override void OnDrawProperties(ref Rect position, NovelDataEditor editor, SerializedProperty serializedParameters, bool isActive, bool isFocused)
        {
            var serializedHandleName = serializedParameters.GetArrayElementAtIndex(0);
            var serializedFilePath   = serializedParameters.GetArrayElementAtIndex(1);
            var serializedXRatio     = serializedParameters.GetArrayElementAtIndex(2);
            var serializedYRatio     = serializedParameters.GetArrayElementAtIndex(3);
            var serializedTime       = serializedParameters.GetArrayElementAtIndex(4);
            var serializedIsReverse  = serializedParameters.GetArrayElementAtIndex(5);
            var serializedIsStandBy  = serializedParameters.GetArrayElementAtIndex(6);


            position.x     += NovelDataEditor.CommandPropertyWidth;
            position.width -= NovelDataEditor.CommandPropertyWidth;

            var isStandBy = EditorGUI.ToggleLeft(position, "調整のみ(表示しない)", serializedIsStandBy.stringValue.ParseBool());

            serializedIsStandBy.stringValue = isStandBy.ToString();
            position.x     -= NovelDataEditor.CommandPropertyWidth;
            position.width += NovelDataEditor.CommandPropertyWidth;
            position.y     += position.height;

            serializedHandleName.stringValue = EditorGUI.TextField(position, "ハンドル名", serializedHandleName.stringValue);
            position.y += position.height;
            serializedFilePath.stringValue = EditorGUI.TextField(position, "ファイル名", serializedFilePath.stringValue);
            position.y += position.height;
            serializedXRatio.stringValue = EditorGUI.Slider(position, "X座標", serializedXRatio.stringValue.ParseFloat(), -1.0f, 1.0f).ToString();
            position.y += position.height;
            serializedYRatio.stringValue = EditorGUI.Slider(position, "Y座標", serializedYRatio.stringValue.ParseFloat(), -1.0f, 1.0f).ToString();
            position.y += position.height;
            serializedIsReverse.stringValue = EditorGUI.Toggle(position, "左右反転", serializedIsReverse.stringValue.ParseBool()).ToString();
            position.y += position.height;

            if (isStandBy)
            {
                serializedTime.stringValue = "0";
                return;
            }

            serializedTime.stringValue = EditorGUI.FloatField(position, "表示時間(フェードイン)", serializedTime.stringValue.ParseFloat()).ToString();
        }
コード例 #14
0
 protected override void OnDrawProperties(ref Rect position, NovelDataEditor editor, SerializedProperty serializedParameters, bool isActive, bool isFocused)
 {
 }
コード例 #15
0
        protected override void OnDrawProperties(ref Rect position, NovelDataEditor editor, SerializedProperty serializedParameters, bool isActive, bool isFocused)
        {
            var serializedGroupName = serializedParameters.GetArrayElementAtIndex(0);

            SerializedProperty serializedGroupProperty;

            if (editor.groupDic.TryGetValue(serializedGroupName.stringValue, out serializedGroupProperty))
            {
                // グループ名
                position.x     += NovelDataEditor.CommandPropertyWidth;
                position.width -= NovelDataEditor.CommandPropertyWidth;

                var index = System.Array.FindIndex(editor.groups, name => name == serializedGroupName.stringValue);
                index = EditorGUI.Popup(position, index, editor.groups);
                serializedGroupName.stringValue = editor.groups[index];

                position.x     -= NovelDataEditor.CommandPropertyWidth;
                position.width += NovelDataEditor.CommandPropertyWidth;

                // グループ引数の表示
                var serializedGroupParameters = serializedGroupProperty.FindPropertyRelative("parameters");
                if (serializedGroupParameters.arraySize <= 1)
                {
                    //Elementの削除/追加によってキャッシュしているSerializePropertyが壊れることがある
                    editor.SetupCommandsList();
                    return;
                }

                var serializedGroupParameterCount = serializedGroupParameters.GetArrayElementAtIndex(1);
                var groupParameterCount           = serializedGroupParameterCount.stringValue.ParseInt();

                var serializedParameterCount = serializedParameters.GetArrayElementAtIndex(1);
                serializedParameterCount.stringValue = groupParameterCount.ToString();

                if (groupParameterCount <= 0)
                {
                    return;
                }

                if (serializedGroupParameters.arraySize < groupParameterCount + 1)
                {
                    //Elementの削除/追加によってキャッシュしているSerializePropertyが壊れることがある
                    editor.SetupCommandsList();
                    return;
                }


                for (int i = 0; i < groupParameterCount; ++i)
                {
                    var serializedGroupParameterType = serializedGroupParameters.GetArrayElementAtIndex(i * 2 + 2);
                    var serializedGroupParameterName = serializedGroupParameters.GetArrayElementAtIndex(i * 2 + 3);
                    var serializedParameterName      = serializedParameters.GetArrayElementAtIndex(i * 2 + 2);
                    var serializedParameterValue     = serializedParameters.GetArrayElementAtIndex(i * 2 + 3);
                    serializedParameterName.stringValue = serializedGroupParameterName.stringValue;

                    position.y += position.height;

                    switch (serializedGroupParameterType.stringValue.ParseInt())
                    {
                    case 0:                     // bool
                        serializedParameterValue.stringValue = EditorGUI.Toggle(
                            position,
                            serializedGroupParameterName.stringValue,
                            serializedParameterValue.stringValue.ParseBool()).ToString();
                        break;

                    case 1:                     // int
                        serializedParameterValue.stringValue = EditorGUI.IntField(
                            position,
                            serializedGroupParameterName.stringValue,
                            serializedParameterValue.stringValue.ParseInt()).ToString();
                        break;

                    case 2:                     // float
                        serializedParameterValue.stringValue = EditorGUI.FloatField(
                            position,
                            serializedGroupParameterName.stringValue,
                            serializedParameterValue.stringValue.ParseFloat()).ToString();
                        break;

                    case 3:                     // string
                        serializedParameterValue.stringValue = EditorGUI.TextField(
                            position,
                            serializedGroupParameterName.stringValue,
                            serializedParameterValue.stringValue);
                        break;

                    case 4:                     // text
                        EditorGUI.LabelField(position, serializedGroupParameterName.stringValue);
                        position.y     += position.height;
                        position.height = NovelUtilityEditor.SingleLineHeight * 3;
                        serializedParameterValue.stringValue = EditorGUI.TextArea(
                            position,
                            serializedParameterValue.stringValue);
                        position.y     += NovelUtilityEditor.SingleLineHeight * 2;
                        position.height = NovelUtilityEditor.SingleLineHeight;
                        break;
                    }
                }
            }
            else
            {
                // 見つからないグループ名が入力されている場合
                // 大元のグループ名を変更してしまった、インクルードを消してしまった等
                // 複数の原因が絡むので、下記表示を行う
                // ・考えられる原因のエラー表示
                // ・本来のグループ名を入力してもらう

                position.x     += NovelDataEditor.CommandPropertyWidth;
                position.width -= NovelDataEditor.CommandPropertyWidth;
                serializedGroupName.stringValue = EditorGUI.TextField(position, serializedGroupName.stringValue);
                position.x     -= NovelDataEditor.CommandPropertyWidth;
                position.width += NovelDataEditor.CommandPropertyWidth;

                position.y     += position.height;
                position.height = NovelUtilityEditor.SingleLineHeight * 3;
                EditorGUI.HelpBox(position,
                                  "設定されているグループ名が見つかりませんでした\n" +
                                  "・Groupのグループ名を変更した、あるいは削除した\n" +
                                  "・Includeのファイルを変更した、あるいは削除した", MessageType.Error);
            }
        }
コード例 #16
0
        protected override void OnDrawProperties(ref Rect position, NovelDataEditor editor, SerializedProperty serializedParameters, bool isActive, bool isFocused)
        {
            var serializedGroupName      = serializedParameters.GetArrayElementAtIndex(0);
            var serializedParameterCount = serializedParameters.GetArrayElementAtIndex(1);

            position.x     += NovelDataEditor.CommandPropertyWidth;
            position.width -= NovelDataEditor.CommandPropertyWidth;
            serializedGroupName.stringValue = EditorGUI.TextField(position, "コマンド名", serializedGroupName.stringValue);
            position.x     -= NovelDataEditor.CommandPropertyWidth;
            position.width += NovelDataEditor.CommandPropertyWidth;

            position.y += position.height;
            var parameterCount = EditorGUI.IntSlider(position, "引数", serializedParameterCount.stringValue.ParseInt(), 0, 6);

            serializedParameterCount.stringValue = parameterCount.ToString();

            if (parameterCount <= 0)
            {
                return;
            }

            const float TypeWidth = 0.25f;
            const float NameWidth = 0.75f;
            var         width     = position.width;
            var         x         = position.x;

            position.y    += position.height;
            position.width = width * TypeWidth;
            EditorGUI.LabelField(position, "[型]");
            position.x    += position.width;
            position.width = width * NameWidth;
            EditorGUI.LabelField(position, "[引数名]");

            position.x     = x;
            position.width = width;

            for (int i = 0; i < parameterCount; ++i)
            {
                var serializedParameterType = serializedParameters.GetArrayElementAtIndex(i * 2 + 2);
                var serializedParameterName = serializedParameters.GetArrayElementAtIndex(i * 2 + 3);

                position.width = width * TypeWidth;
                position.y    += position.height;

                var typeIndex = EditorGUI.Popup(position, serializedParameterType.stringValue.ParseInt(), new string[] {
                    "bool(真偽)",
                    "int(整数)",
                    "float(実数)",
                    "string(文字)",
                    "text(文章)",
                });
                serializedParameterType.stringValue = typeIndex.ToString();

                position.x    += position.width;
                position.width = width * NameWidth;
                // 先頭に@をつける(引数かどうかの区別をつけやすくする為)
                if (0 < serializedParameterName.stringValue.Length && serializedParameterName.stringValue[0] != '@')
                {
                    serializedParameterName.stringValue = serializedParameterName.stringValue.Insert(0, "@");
                }
                serializedParameterName.stringValue = EditorGUI.TextField(position, serializedParameterName.stringValue);

                position.x     = x;
                position.width = width;
            }
        }