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
-1
Question by MrCottonmann · Feb 25, 2014 at 11:31 AM · moveclickeffectto

Question about Click to Move effect within code.

Hi! I am still learning about the code needed to do various functions and I have a script made for Click to Move an object but, what I wanted to know is what type of code would I have to put into the script or make an entire new script just for the effect when I click onto the floor.

Here is my script I run for Click to Move:

         private var targetPosition:Vector3;
         var speed = 60;
  
         function Update () {
  
             if(Input.GetKeyDown(KeyCode.Mouse0))
             {
                    speed = 5;
 
                 var playerPlane = new Plane(Vector3.up, transform.position);
                 var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
                 var hitdist = 0.0;
  
                 if (playerPlane.Raycast (ray, hitdist)) {
                     var targetPoint = ray.GetPoint(hitdist);
                     targetPosition = ray.GetPoint(hitdist);
                     var targetRotation = Quaternion.LookRotation(targetPoint - transform.position);
                     transform.rotation = targetRotation;
  
                 }
  
             }
  
             var dir:Vector3 = targetPosition - transform.position;
             var dist:float = dir.magnitude;
             var move:float = speed * Time.deltaTime;
 
             if(dist > move){
                transform.position += dir.normalized * move;
  
             } else {
             transform.position = targetPosition;
  
             }
  
             transform.position += (targetPosition - transform.position).normalized * speed * Time.deltaTime;
  
          }
Comment
Add comment · Show 2
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 Graham-Dunnett ♦♦ · Feb 25, 2014 at 11:51 AM 0
Share

What problem do you have? Does your code not work? What happens? Or does not happen?

avatar image MrCottonmann · Feb 25, 2014 at 06:44 PM 0
Share

So I tried to look around to find out how to put a script on an object which when I click to an area it would display a particle or some image. I found this but I just dont know now to iterate it: function Start () {

 clickTimer ();
 
 }
 
 function Update () {
 }
 
 function clickTimer () {
 
 yield WaitForSeconds(0.2);
 
 Destroy(this.gameobject);
 
 }

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by livevlad · Feb 25, 2014 at 01:24 PM

If your issue is how to move a specific object with your script, check first if the mouse is on this object.

 if ( Input.GetMouseButtonDown(0)){
        RaycastHit hit;
        Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
        if (Physics.Raycast (ray, hit, 100.0f)){
           if(hit.transform.gameobject.transform.GetInstanceId() == this.transform.GetInstanceId()){
              // start moving
           }
        }
     }

Here I considered that your script was attached to the object you'd want to move.

Hope it helps !

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 MrCottonmann · Feb 25, 2014 at 06:54 PM 0
Share

So for this do I replace the line of code that I have or do I put it in as another if function because, I did try to replace the similar line of code with yours and I get 3 errors:

1 expected ';' after the RaycastHit hit; 1 expected ';' after the (Input.mousePosition); and within the same line: Unexpected token: ray

avatar image livevlad · Feb 26, 2014 at 12:05 PM 0
Share

You are right, I edited the code above. But this code does not do everything, you have to use yours to.

Where you have the "start moving", save the mouse's original position on the plane.

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

22 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 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

I get errorsfor my Click to Move Script 0 Answers

Click to move on a sphere (planetary gravity) 0 Answers

Move to clicked hitpoint 2 Answers

How Can I write a Click To Move Script? 2 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