Tanoda
pb_OffsetHolderEditor.cs
Go to the documentation of this file.
1using System;
2using UnityEngine;
3using System.Collections;
4using System.Reflection;
6using UnityEngine.UI;
7#if !UNITY_WEBGL
8using Valve.VR.InteractionSystem;
9#endif
10
11namespace GILES.Interface
12{
17 {
18 private OffsetHolder _offsetHoler;
19
20 protected override void InitializeGUI()
21 {
22 _offsetHoler = (OffsetHolder) target;
23
24 pb_GUIUtility.AddVerticalLayoutGroup(gameObject);
25 pb_TypeInspector position_inspector = pb_InspectorResolver.GetInspector(typeof(Vector3));
26 pb_TypeInspector rotation_inspector = pb_InspectorResolver.GetInspector(typeof(Vector3));
27 pb_TypeInspector leftposition_inspector = pb_InspectorResolver.GetInspector(typeof(Vector3));
28 pb_TypeInspector leftrotation_inspector = pb_InspectorResolver.GetInspector(typeof(Vector3));
29
30 position_inspector.Initialize("Offset", UpdatePosition, OnSetPosition);
31 rotation_inspector.Initialize("Rotation", UpdateRotation, OnSetRotation);
32
33 leftposition_inspector.Initialize("Left Offset", UpdateleftPosition, OnSetleftPosition);
34 leftrotation_inspector.Initialize("Left Rotation", UpdateleftRotation, OnSetleftRotation);
35
36 position_inspector.onValueBeginChange = () => { Undo.RegisterState( new UndoOffsetHolder(_offsetHoler), "Offset changed:" + _offsetHoler.Offset.ToString("G") ); };
37 rotation_inspector.onValueBeginChange = () => { Undo.RegisterState( new UndoOffsetHolder(_offsetHoler), "Offset changed:" + _offsetHoler.Rotation.ToString("G") ); };
38
39 leftposition_inspector.onValueBeginChange = () => { Undo.RegisterState( new UndoOffsetHolder(_offsetHoler), "Offset changed:" + _offsetHoler.LeftOffset.ToString("G") ); };
40 leftrotation_inspector.onValueBeginChange = () => { Undo.RegisterState( new UndoOffsetHolder(_offsetHoler), "Offset changed:" + _offsetHoler.LeftRotation.ToString("G") ); };
41
42 position_inspector.transform.SetParent(transform);
43 rotation_inspector.transform.SetParent(transform);
44
45 leftposition_inspector.transform.SetParent(transform);
46 leftrotation_inspector.transform.SetParent(transform);
47 }
48
49 void Update()
50 {
51 if(Input.GetMouseButton(0))
52 {
54 {
55 UpdateGUI();
56 }
57 }
58 }
59
60 object UpdatePosition(int index)
61 {
62 return _offsetHoler.Offset;
63 }
64
65 object UpdateRotation(int index)
66 {
67 return _offsetHoler.Rotation;
68 }
69
70
71 object UpdateleftPosition(int index)
72 {
73 return _offsetHoler.LeftOffset;
74 }
75
76 object UpdateleftRotation(int index)
77 {
78 return _offsetHoler.LeftRotation;
79 }
80
81 void OnSetPosition(int index, object value)
82 {
83 foreach (var go in pb_Selection.gameObjects)
84 {
85 var oh = go.GetComponent<OffsetHolder>();
86 if (oh != null) oh.Offset = (Vector3) value;
87 }
88 //_offsetHoler.Offset = (Vector3) value;
89 pb_Selection.OnExternalUpdate();
90
91 pb_ComponentDiff.AddDiff(target, "vector3", _offsetHoler.Offset);
92 }
93
94 void OnSetRotation(int index, object value)
95 {
96 foreach (var go in pb_Selection.gameObjects)
97 {
98 var oh = go.GetComponent<OffsetHolder>();
99 if (oh != null) oh.Rotation = (Vector3)value;
100 }
101 //_offsetHoler.Rotation = (Vector3) value;
102 pb_Selection.OnExternalUpdate();
103
104 pb_ComponentDiff.AddDiff(target, "rotvector3", _offsetHoler.Rotation);
105 }
106
107 void OnSetleftPosition(int index, object value)
108 {
109 foreach (var go in pb_Selection.gameObjects)
110 {
111 var oh = go.GetComponent<OffsetHolder>();
112 if (oh != null) oh.LeftOffset = (Vector3)value;
113 }
114 //_offsetHoler.LeftOffset = (Vector3) value;
115 pb_Selection.OnExternalUpdate();
116
117 pb_ComponentDiff.AddDiff(target, "leftvector3", _offsetHoler.LeftOffset);
118 }
119
120 void OnSetleftRotation(int index, object value)
121 {
122 foreach (var go in pb_Selection.gameObjects)
123 {
124 var oh = go.GetComponent<OffsetHolder>();
125 if (oh != null) oh.LeftRotation = (Vector3)value;
126 }
127 //_offsetHoler.LeftRotation = (Vector3) value;
128 pb_Selection.OnExternalUpdate();
129
130 pb_ComponentDiff.AddDiff(target, "leftrotvector3", _offsetHoler.LeftRotation);
131 }
132 }
133}
Component target
The UnityEngine.Component being edited.
static void AddDiff(Component component, string name, object value)
static void RegisterState(IUndo target, string message)
Definition: Undo.cs:214
Vector3 Offset
Definition: OffsetHolder.cs:7
Vector3 LeftRotation
Definition: OffsetHolder.cs:10
Vector3 Rotation
Definition: OffsetHolder.cs:8
Vector3 LeftOffset
Definition: OffsetHolder.cs:9