- Home /
I am trying to pick up an Object and drag it with my mouse.
i have made this script to pick up an object and drag it to the raycast hit point but there is one problem. the cube is constantly in the way of the ray so it kind of loops from the right place to in your face. can anybody help me fix my problem. here is the script...
var Obj : GameObject;
var isDragging : boolean=false;
function OnMouseOver(){
if (Input.GetMouseButton(0)){
isDragging=true;
}
if (Input.GetMouseButton(1)){
isDragging=false;
}
}
function Update() {
var mousePosition : Vector3 = (Input.mousePosition);
var screenRay : Ray = Camera.main.ScreenPointToRay( mousePosition );
var hitInfo : RaycastHit;
Physics.Raycast( screenRay, hitInfo );
var pointOfImpact : Vector3 = hitInfo.point;
if (isDragging==true){
Obj.transform.position=(pointOfImpact);
}
}
I believe i am having a problem with the raycast hit position because if the object's position = the hit position then the object is constantly moving to where the ray hits it. is there a way to make the ray ignore the object?
also i was trying to make the object float above the hit point by adding an int of Y, but it doesn't seem to work with the Vector3.
Answer by Berenger · Feb 12, 2014 at 01:29 PM
You can use layers. By using the last version of the function (http://docs.unity3d.com/Documentation/ScriptReference/Physics.Raycast.html), you can ignore object with this or that layer. You could use the IgnoreRaycast layer, so you don't even have to create a new one.
When an object is dragged, change its layer.
Cast a ray on all layers but this one (~LayerMask.NameToLayer("IgnoreRayst") ...)
When the dragging stops, restore the layer
i am sorry, i'm still a little new to scripting. can you please show me how to write this part of the code. i understand that the ray would pass through the object if it's layer was ignored, i just don't know how to translate your helpful tips into a script.
Your answer
Follow this Question
Related Questions
Draging Rigid body....for real-time loaded models 1 Answer
How do I make a Raycast attached to my mouse rotate an object with a script attached on the Y axis? 0 Answers
How to block dragging if collider hits 1 Answer
Help changing plane.Raycast dragging script 1 Answer
Increase Drag Distance?? 0 Answers