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 Kunaljani4536 · Jun 14, 2014 at 09:17 AM · clicktomove

Move selected object

hi guys i am using a following script to move an object with mouse click but my problem is all the objects move on mouse click. So what can i add to my code so that first on mouse click objects gets selected and highlighted..then on another click it moves to mouse position.I have searched a lot but cannot find solution.Also i want that when i click anywhere else or on another object ..the previously selected objects gets deselected.Thanks

 var obj:Transform;
     private var hitPoint : Vector3;
     private var move: boolean = false;
     private var startTime:float;
     var speed = 1;
 
 
 
     function Update ()
     {
     if(Input.GetKeyDown(KeyCode.Mouse0))
     {
     var hit : RaycastHit; // no point storing this really
     var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
     if (Physics.Raycast (ray, hit, 10000))
     {
  
     hitPoint = hit.point;
     move = true;
     startTime = Time.time;
     }
     }
    
     
 
     if(move)
     {
     obj.position = Vector3.Lerp(obj.position, hitPoint, Time.deltaTime * speed);
     if(obj.position == hitPoint)
     {
     move = false;
     }
     }
     }

Comment
Add comment
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

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by robusto · Jun 14, 2014 at 02:25 PM

I think you are mostly there. Let me try and think your process through without giving away the whole thing.

  1. If Mouse0 button is down, raycast and if hit, set the hit.collider.gameObject to a gameObject var. If there was no hit, set your gameObject var to null.

  2. If Mouse1 button is down and your gameObject var is not null, set bool move var to true and raycast into the ground and set the hitpoint.

  3. If bool move var is true, lerp the gameObject's position to the hitPoint and set bool move var to false once done.

Another thing I noticed is that when you use the Lerp function, the last parameter isn't your speed, but it is percent, a value between 0 and 1. You should hold a var float percent somewhere, set it to 0, when you start lerping increment it using percent += speed * time.deltatime, and to check if you are done, use if( Mathf.Approximately( 1f, percent ) )

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 Kunaljani4536 · Jun 15, 2014 at 03:30 AM 0
Share

hey thanx man for the answer i will try that and can you please give me the code for the last thing you said about lerp function.

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

3 People are following this question.

avatar image avatar image avatar image

Related Questions

The name 'Joystick' does not denote a valid type ('not found') 2 Answers

click to move with constant speed 2 Answers

Assigning valid moves 0 Answers

How to import the object from server to unity 2 Answers

Material doesn't have a color property '_Color' 4 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