- Home /
Intercepting Position Handle in Game Scene?
So I'm trying to have the position handle in the game scene of an object update a Vector3 I have in a script rather than the actual transform position of the object. At the moment I have this code...
if(systemControl.transform.position != Vector3.zero){ //Keep camera at 0,0,0 and change placement of ship
systemControl.shipPosition -= systemControl.transform.position;
systemControl.transform.position = Vector3.zero;
}
And this works as long as you drag one way, or stop before dragging another. If you hold down the mouse while dragging and just wiggle it, it will keep in incrementing positive or negative which ever way you started moving it. Basically it doesn't act like it would normally if it's just moving the transform around. I thought perhaps there might be a better way where I just intercept the position handle or someting. Anyone have any ideas or suggestions?
Answer by SirIntruder · Aug 31, 2013 at 05:03 PM
You are trying to do this in editor, if I understood you correctly? You should write a custom inspector for your object which contains vector3 you would like to move around (Vector3 shipPosition). Then, in custom editor class add OnSceneGUI() method which would to something like this:
[CustomInspector(typeof(MyShipScript))]
public class MyShipScriptInspector : Editor
{
void OnScreenGUI()
{
MyShipScript ship = target as MyShipScript;
ship.shipPosition = Handles.PositionHandle(ship.shipPosition);
}
}
Check docs for UnityEditor.Handles for more options, and sorry if I made mistake in that code, I was writing this from memory. This should draw another position handle on shipPosition and return you updated value if moved.
btw, if you would like to hide standard unity handle for that game object, you can do that by assigning to Tools.current = Tool.None in OnSceneGUI() (check Tools docs for more information).
Your answer
Follow this Question
Related Questions
Change position of camera on scene load? 1 Answer
Create a straight gradient equation with a grid of 3d objects 1 Answer
Following another object's position/rotation like parent/child relationship? 4 Answers
How do you set the initial value of a variable to an objects current position in unity? 1 Answer
Create an animation with variables? 1 Answer