Ich möchte meine maximale Zeichenlänge in Textbereich in meinem benutzerdefinierten Inspektor beschränken. Ich habe versucht, wie unten zu machen Code:Wie wird die Stringlänge im Textbereich begrenzt? [Editor Scripting]
if(EditorGUI.EndChangeCheck()){
if(_dTarget.mazeNumData.Length >= 338){
_dTarget.mazeNumData.Remove((_dTarget.mazeNumData.Length - 1) - 3, 3);
}
}
Aber es hat nicht work.Is etwas falsch mit meinem Code?
Mein vollständiger Code:
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);
}
}
danke für die antwort. Ich habe meinen Code wie vorgeschlagen geändert, aber es hat trotzdem nicht funktioniert. Hier ist der Code: http://pastebin.com/n54XNKwQ –
@AliAkbar bearbeitet Ihre Pastebin: [http://pastebin.com/Uu8C9bTQ](http://pastebin.com/Uu8C9bTQ) –
Danke, dass es funktioniert! aber das Problem ist, dass die letzten 3 Zeichen nur entfernt werden, wenn ich irgendwo außerhalb des Textbereichs klicke: | –