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); }
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; }
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; } }
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(); }
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(); }
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); }
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; }
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; }
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(); }
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(); }
/// <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; } }
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; } }
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(); }
protected override void OnDrawProperties(ref Rect position, NovelDataEditor editor, SerializedProperty serializedParameters, bool isActive, bool isFocused) { }
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); } }
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; } }