Unity Ninja Unity 3D Forum
To have exclusive access to all downloads, recourses and links within this forum, a free registered account is required. Just a heads up Wink
Share
Go down
avatar
{SUPER MEMBER}-LV.4
{SUPER MEMBER}-LV.4
Posts : 64
Points : 1857
Rep : 3
Join date : 2013-12-21
Age : 15
Location : USA
View user profilehttp://oneknifegames.weebly.com/

Point And Click Script

on Sun Mar 29, 2015 4:42 pm
Message reputation : 100% (3 votes)
To start off with, create a new C# script and rename it to TapToMove then, copy and paste the following script (I would have put it in a code thing but it kept making each line a separate code):

Spoiler:
using UnityEngine;
using System.Collections;

public class TapToMove : MonoBehaviour {
//flag to check if the user has tapped / clicked. 
//Set to true on click. Reset to false on reaching destination
private bool flag = false;
//destination point
private Vector3 endPoint;
//alter this to change the speed of the movement of player / gameobject
public float duration = 50.0f;
//vertical position of the gameobject
private float yAxis;

void Start(){
//save the y axis value of gameobject
yAxis = gameObject.transform.position.y;
}

// Update is called once per frame
void Update () {

//check if the screen is touched / clicked   
if((Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began) || (Input.GetMouseButtonDown(0)))
{
//declare a variable of RaycastHit struct
RaycastHit hit;
//Create a Ray on the tapped / clicked position
Ray ray;
//for unity editor
#if UNITY_EDITOR
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
//for touch device
#elif (UNITY_ANDROID || UNITY_IPHONE || UNITY_WP8)
ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);
#endif

//Check if the ray hits any collider
if(Physics.Raycast(ray,out hit))
{
//set a flag to indicate to move the gameobject
flag = true;
//save the click / tap position
endPoint = hit.point;
//as we do not want to change the y axis value based on touch position, reset it to original y axis value
endPoint.y = yAxis;
Debug.Log(endPoint);
}

}
//check if the flag for movement is true and the current gameobject position is not same as the clicked / tapped position
if(flag && !Mathf.Approximately(gameObject.transform.position.magnitude, endPoint.magnitude)){ //&& !(V3Equal(transform.position, endPoint))){
//move the gameobject to the desired position
gameObject.transform.position = Vector3.Lerp(gameObject.transform.position, endPoint, 1/(duration*(Vector3.Distance(gameObject.transform.position, endPoint))));
}
//set the movement indicator flag to false if the endPoint and current gameobject position are equal
else if(flag && Mathf.Approximately(gameObject.transform.position.magnitude, endPoint.magnitude)) {
flag = false;
Debug.Log("I am here");
}

}
}
Oh yeah, and every time it does a debug, it says I am here, I thought it was kind of funny...

Credit to: MYNAMETIGER (I had no idea you made this script, I never saw your post).


Last edited by OneKnifeGames on Wed Apr 01, 2015 4:41 pm; edited 1 time in total
avatar
{SUPER MEMBER}-LV.4
{SUPER MEMBER}-LV.4
Posts : 66
Points : 1705
Rep : 16
Join date : 2015-03-27
Age : 15
Location : India
View user profile

Re: Point And Click Script

on Sun Mar 29, 2015 10:21 pm
OneKnifeGames wrote:To start off with, create a new C# script and rename it to TapToMove then, copy and paste the following script (I would have put it in a code thing but it kept making each line a separate code):

Spoiler:
using UnityEngine;
using System.Collections;

public class TapToMove : MonoBehaviour {
//flag to check if the user has tapped / clicked. 
//Set to true on click. Reset to false on reaching destination
private bool flag = false;
//destination point
private Vector3 endPoint;
//alter this to change the speed of the movement of player / gameobject
public float duration = 50.0f;
//vertical position of the gameobject
private float yAxis;

void Start(){
//save the y axis value of gameobject
yAxis = gameObject.transform.position.y;
}

// Update is called once per frame
void Update () {

//check if the screen is touched / clicked   
if((Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began) || (Input.GetMouseButtonDown(0)))
{
//declare a variable of RaycastHit struct
RaycastHit hit;
//Create a Ray on the tapped / clicked position
Ray ray;
//for unity editor
#if UNITY_EDITOR
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
//for touch device
#elif (UNITY_ANDROID || UNITY_IPHONE || UNITY_WP8)
ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);
#endif

//Check if the ray hits any collider
if(Physics.Raycast(ray,out hit))
{
//set a flag to indicate to move the gameobject
flag = true;
//save the click / tap position
endPoint = hit.point;
//as we do not want to change the y axis value based on touch position, reset it to original y axis value
endPoint.y = yAxis;
Debug.Log(endPoint);
}

}
//check if the flag for movement is true and the current gameobject position is not same as the clicked / tapped position
if(flag && !Mathf.Approximately(gameObject.transform.position.magnitude, endPoint.magnitude)){ //&& !(V3Equal(transform.position, endPoint))){
//move the gameobject to the desired position
gameObject.transform.position = Vector3.Lerp(gameObject.transform.position, endPoint, 1/(duration*(Vector3.Distance(gameObject.transform.position, endPoint))));
}
//set the movement indicator flag to false if the endPoint and current gameobject position are equal
else if(flag && Mathf.Approximately(gameObject.transform.position.magnitude, endPoint.magnitude)) {
flag = false;
Debug.Log("I am here");
}

}
}
Oh yeah, and every time it does a debug, it says I am here, I thought it was kind of funny...





Sir,


This is my Script.....  Exclamation  pale  Sad  affraid

It would be very kind of you, if you added my name

Thanks
MYNAMETIGER
avatar
{SUPER MEMBER}-LV.4
{SUPER MEMBER}-LV.4
Posts : 66
Points : 1705
Rep : 16
Join date : 2015-03-27
Age : 15
Location : India
View user profile

Re: Point And Click Script

on Sun Mar 29, 2015 10:26 pm
Download the Complete Project from : [You must be registered and logged in to see this link.]


LINK [You must be registered and logged in to see this link.]
avatar
Admin
Admin
Posts : 608
Points : 3169
Rep : 406
Join date : 2013-12-11
Age : 21
View user profilehttps://www.youtube.com/user/misterninjaboy

Re: Point And Click Script

on Mon Mar 30, 2015 12:21 am
One knife please credit him in your post. I will remove this post if you don't do so for plagiarism.
avatar
{SUPER MEMBER}-LV.4
{SUPER MEMBER}-LV.4
Posts : 53
Points : 1529
Rep : 11
Join date : 2015-01-18
Age : 41
Location : Italia
View user profile

Re: Point And Click Script

on Thu Apr 30, 2015 3:20 pm
thanks
very good
Member [Lv. 0]
Member [Lv. 0]
Posts : 1
Points : 1188
Rep : 0
Join date : 2015-04-21
View user profile

Re: Point And Click Script

on Sun May 03, 2015 5:41 am
Thank you
Back to top
Permissions in this forum:
You cannot reply to topics in this forum