重写ScriptedImporterEditor的时候如果实现了CreateInspectorGUI,那么Unity则不会调用OnInspectorGUI,导致OnDisable进入的时候判定你没有调用过ApplyRevertGUI();方法,解决方案:
1.改为在OnHeaderGUI里实现
2.反射改值
3.重写
4.CreateInspectorGUI后延时调用ApplyRevertGUI
public override VisualElement CreateInspectorGUI(){
_scrollView = new ScrollView() {
showHorizontal = true
};
for (var i = 0; i < _excel.sheets[0].rows.Count; i++){
var lines = _excel.sheets[0].rows;
var line = new VisualElement {
style = {
flexDirection = FlexDirection.Row
}
};
for (var j = 0; j < lines[i].cells.Count; j++){
var textField = new TextField {
value = _excel[0][i][j].text,
style = {
width = 50
}
};
line.Add(textField);
}
_scrollView.contentContainer.Add(line);
}
var visualElement = new VisualElement();
visualElement.Add(_scrollView);
return visualElement;
}