public GUIMatrix(System.Object data, FieldInfo fi) : base(data, fi) { TextMatrix = new TextMatrix((Matrix4x4)fi.GetValue(data)); _onGUI = () => { GUILayout.BeginHorizontal(); GUILayout.Label(string.Format("{0} ", fi.Name), GUILayout.ExpandWidth(false)); GUILayout.BeginVertical(); for (var y = 0; y < 4; y++) { GUILayout.BeginHorizontal(); for (var x = 0; x < 4; x++) { TextMatrix[x + y * 4] = GUILayout.TextField( TextMatrix[x + y * 4], GUILayout.ExpandWidth(true), GUILayout.MinWidth(30f)); } GUILayout.EndHorizontal(); } GUILayout.EndVertical(); GUILayout.EndHorizontal(); Save(); }; }
public System.Action GenerateGUIMatrix4x4(FieldInfo fi) { var textMatrix = new TextMatrix((Matrix4x4)fi.GetValue(data)); return(() => { GUILayout.BeginHorizontal(); GUILayout.Label(string.Format("{0} ", fi.Name), GUILayout.ExpandWidth(false)); GUILayout.BeginVertical(); for (var y = 0; y < 4; y++) { GUILayout.BeginHorizontal(); for (var x = 0; x < 4; x++) { textMatrix [x + y * 4] = GUILayout.TextField( textMatrix [x + y * 4], GUILayout.ExpandWidth(true), GUILayout.MinWidth(30f)); } GUILayout.EndHorizontal(); } GUILayout.EndVertical(); GUILayout.EndHorizontal(); fi.SetValue(data, textMatrix.Value); }); }