Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public override void OnToolGUI(EditorWindow window) {
- Event e = Event.current;
- switch (e.type) {
- case EventType.KeyDown: {
- if (e.keyCode == KeyCode.LeftControl) {
- adjustY = true;
- }
- break;
- }
- case EventType.KeyUp:
- if (e.keyCode == KeyCode.LeftControl) {
- adjustY = false;
- }
- break;
- }
- EditorGUI.BeginChangeCheck();
- Vector3 worldPos = Tools.handlePosition;
- Vector3 projectedPos = new Vector3(worldPos.x, worldPos.y + worldPos.z);
- Vector3 newPos = projectedPos;
- Handles.color = Handles.xAxisColor;
- newPos.x = Handles.Slider(projectedPos, Vector3.right).x;
- if (adjustY) {
- Handles.color = Handles.yAxisColor;
- newPos.y = Handles.Slider(projectedPos, Vector3.up).y;
- } else {
- Handles.color = Handles.zAxisColor;
- float y = Handles.Slider(projectedPos, Vector3.up).y;
- float delta = y - newPos.y;
- newPos.z += delta;
- }
- worldPos += newPos - projectedPos;
- if (EditorGUI.EndChangeCheck()) {
- Vector3 delta = worldPos - Tools.handlePosition;
- Undo.RecordObjects(Selection.transforms, "Perspective Move");
- foreach (var transform in Selection.transforms) {
- transform.position += delta;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement