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 ntaproduction · Feb 19, 2015 at 01:54 PM · mobilecharactermousetouchclick

How can I make the character move to clicked position without allowing the user to drag?

I'm building a simple mobile game where the user has to touch the screen to move but I don't want to give the user the ability to click/touch and drag. I basically want the controls to be, the user clicks/touches the screen and character jumps in the air to that position but the user can hold that character in position but they can not drag the character. Have everything like I want it except for the drag. How can I exclude this while keeping everything else?

I may have added some unnecessary code but help is greatly appreciated.

 public class PlayerInput : MonoBehaviour
 {
     private Vector3 target;
     public float moveSpeed = 1.5f;
     public Vector3 curPos;
     public Vector3 lastPos;
 
     private Vector3 moveDirection = Vector3.zero;
     public float gravity = 20.0f;
     public float speed = 5.0f;
 
     CharacterController cc;
 
     // Use this for initialization
     void Start()
     {
         curPos = gameObject.transform.position;
 
         cc = GetComponent<CharacterController>();
     }
 
     void Update()
     {
         if (Input.GetMouseButton(0))
         {
             target = Camera.main.ScreenToWorldPoint(Input.mousePosition);
             target.z = transform.position.z;
             transform.position = Vector3.MoveTowards(transform.position, target, moveSpeed * Time.deltaTime);
 
             curPos = transform.position;
 
             lastPos = target;
 
             if (curPos == lastPos)
             {
                 gameObject.transform.position = curPos;
             }
         }
         else
         {
             moveDirection.y -= gravity * Time.deltaTime;
         }
 
         cc.Move(moveDirection * Time.deltaTime);
 
         if (cc.isGrounded == true)
         {
             moveDirection.y = 0f;
         }
     }
 }
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
1

Answer by DRRosen3 · Feb 19, 2015 at 02:49 PM

Set a variable (bool) to see if the player has reached the target destination yet.

 public bool arrived = true;

If they have not, then don't allow a new target destination to be set.

 void Update()
      {
          if(arrived)
          {
             if (Input.GetMouseButton(0))
             {
                 target = Camera.main.ScreenToWorldPoint(Input.mousePosition);
                 target.z = transform.position.z;
                 transform.position = Vector3.MoveTowards(transform.position, target, moveSpeed * Time.deltaTime);
  
                 curPos = transform.position;
  
                 lastPos = target;
  
                 if (curPos == lastPos)
                 {
                     gameObject.transform.position = curPos;
                 }
                 arrived = false;
             }  
             else
             {
                 moveDirection.y -= gravity * Time.deltaTime;
             }
  
             cc.Move(moveDirection * Time.deltaTime);
  
             if (cc.isGrounded == true)
             {
                 moveDirection.y = 0f;
             }
      }
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 ntaproduction · Feb 20, 2015 at 10:27 PM 0
Share

Thank you so much. I used this as a base for the fix.

avatar image DRRosen3 · Feb 21, 2015 at 03:08 AM 0
Share

No problem. Good luck and please remember to "thumbs up" if you consider this answered.

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

Attaching anim to this script 1 Answer

iOS Mobile - Mouse Input vs Touch Input 1 Answer

Right Mouse Click in Android 2 Answers

Convert Mouse Input to Touch Input 0 Answers

How to get 'object touched' (Non-GUI) on iPhone? 3 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