Я хочу ограничить длину строки max в текстовой области в моем пользовательском инспекторе. Я попытался сделать код, как показано ниже:Как ограничить длину строки в текстовой области? [Editor Scripting]
if(EditorGUI.EndChangeCheck()){
if(_dTarget.mazeNumData.Length >= 338){
_dTarget.mazeNumData.Remove((_dTarget.mazeNumData.Length - 1) - 3, 3);
}
}
Но это не сработало. Что-то не так с моим кодом?
Мой полный код:
using UnityEngine;
using UnityEditor;
using System.Collections;
[CustomEditor(typeof(DigitTotal))]
public class DigitTotalEditor : Editor {
private DigitTotal _dTarget;
public override void OnInspectorGUI() {
_dTarget = (DigitTotal)target;
DrawDefaultInspector();
DrawCustomInspector();
}
void DrawCustomInspector() {
GUIStyle guiStyle = EditorStyles.textArea;
guiStyle.wordWrap = true;
EditorGUI.BeginChangeCheck();
_dTarget.mazeNumData = EditorGUILayout.TextArea(_dTarget.mazeNumData, guiStyle, new GUILayoutOption[]
{
GUILayout.Height(100f),
GUILayout.Width(250f),
});
if(EditorGUI.EndChangeCheck()){
if(_dTarget.mazeNumData.Length >= 338){
_dTarget.mazeNumData.Remove((_dTarget.mazeNumData.Length - 1) - 3, 3);
}
}
GUILayout.Space(5f);
GUILayout.Label("Digits : " + _dTarget.mazeNumData.Length, EditorStyles.boldLabel);
}
}
благодарит за ответ. Я изменил свой код, как вы предлагали, но все же это не сработало. Вот код: http://pastebin.com/n54XNKwQ –
@AliAkbar отредактировал ваш pastebin: [http://pastebin.com/Uu8C9bTQ](http://pastebin.com/Uu8C9bTQ) –
спасибо, что сработало! но проблема в том, что последние 3 символа будут удалены только в том случае, если я нажимаю где-то вне области текста: | –