Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by allenziff · Jun 23, 2012 at 03:52 PM · objectmovedraganddrop

Drag And drop objects mouse

im trying to make a script where if you look at a object you can press a button e.g M you can move that object anywhere you want

please help

thanx in advanced

Comment
Add comment · Show 1
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image AchillesWF · Jun 23, 2012 at 04:13 PM 0
Share

I don't think your question has enough detail about what you want exactly for anyone to really help you.

2 Replies

· Add your reply
  • Sort: 
avatar image
1
Best Answer

Answer by okokok · Aug 15, 2012 at 05:56 PM

 #pragma strict
 
 private  var screenPoint:Vector3 ;
 private  var offset:Vector3;
 function  OnMouseDown() { screenPoint = Camera.main.WorldToScreenPoint(gameObject.transform.position);
 
 offset = gameObject.transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z));
 }
 
 function OnMouseDrag() 
 
 
 
 {  var curScreenPoint:Vector3 = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z);
 
 var curPosition:Vector3   = Camera.main.ScreenToWorldPoint(curScreenPoint) + offset;
 transform.position = curPosition;
 }


You Can Use This OK !!!

Comment
Add comment · Show 2 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Ricklop · Mar 11, 2013 at 05:31 PM 0
Share

Looking around I found your code really usefull! But I need to move an object on the x,z axis only, I've tried switching the axis on code but that's not working, how can I modify that code so the object only moves on x,z?

avatar image Midnaut · May 26, 2014 at 02:18 AM 0
Share
     using UnityEngine;
      
     
     
     public class DragTest2:$$anonymous$$onoBehaviour
     {
         private Vector3 screenPoint;
         private Vector3 offset;
     
     
         void On$$anonymous$$ouseDown()
         { 
             screenPoint = Camera.main.WorldToScreenPoint(gameObject.transform.position);
             offset = gameObject.transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z));
         }
      
         void On$$anonymous$$ouseDrag() 
         {  
             Vector3 curScreenPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z);
      
             Vector3 curPosition   = Camera.main.ScreenToWorldPoint(curScreenPoint) + offset;
             transform.position = curPosition;
         }
     }
 

c# conversion.

Really appreciate that sweet snippet, great work, been head scratching for about a month on this one.

The behavior of the script is a little hard to constrain, but if you want to constrain to a particular axis (2d im guessing from the xz comment)

 void On$$anonymous$$ouseDrag() 
     {  
         Vector3 curScreenPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z);
  
         Vector3 curPosition   = Camera.main.ScreenToWorldPoint(curScreenPoint) + offset;
         transform.position = new Vector3(curPosition.x, transform.position.y, curPosition.z);
     }

(I wouldn't recommend it though)

avatar image
0

Answer by Berenger · Jun 23, 2012 at 04:25 PM

Pick the object with Physics.Raycast then move it with Plane.Raycast, the plane being defined by the initial position of the object and the vector initial pos -> Camera.

Comment
Add comment · Show 1 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image PsychoPsam · Jun 05, 2013 at 12:15 AM 0
Share

I used this for my card game. Thanks Berenger!

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

12 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Multiple Cars not working 1 Answer

How do I add gravity to an object? 1 Answer

Unity3D Pressure Plate request. 3 Answers

Limiting Drag and Drop 1 Answer

JavaScript and Ajax second addition Tutorial 11 case problem 2 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges