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

You are not connected. Please login or register

Unity Ninja Unity 3D Forum » FREE Project Downloads & Recources » Scripts » Point And Click Script

Point And Click Script

View previous topic View next topic Go down  Message [Page 1 of 1]

1 Point And Click Script on Sun Mar 29, 2015 4:42 pm

OneKnifeGames


{SUPER MEMBER}-LV.4
{SUPER MEMBER}-LV.4
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

View user profile http://oneknifegames.weebly.com/

2 Re: Point And Click Script on Sun Mar 29, 2015 10:21 pm

mynametiger


{SUPER MEMBER}-LV.4
{SUPER MEMBER}-LV.4
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

View user profile

3 Re: Point And Click Script on Sun Mar 29, 2015 10:26 pm

mynametiger


{SUPER MEMBER}-LV.4
{SUPER MEMBER}-LV.4
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.]

View user profile

4 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.

View user profile http://www.youtube.com/user/misterninjaboy

5 Re: Point And Click Script on Thu Apr 30, 2015 3:20 pm

PitbullM


Member [Lv. 3]
Member [Lv. 3]
thanks
very good

View user profile

6 Re: Point And Click Script on Sun May 03, 2015 5:41 am

andrejus


Member [Lv. 0]
Member [Lv. 0]
Thank you

View user profile

View previous topic View next topic Back to top  Message [Page 1 of 1]

Permissions in this forum:
You cannot reply to topics in this forum