Unity3d moving by touches/clicks on screen script

step 1: add collider to your terrain // thêm colider vào terrain

step 2: add sphere or somethings else to your scene/ thêm 1 sphere hoặc cái gì đó vào scene

step 3: create a script c# and copy this script / tạo 1 script bằng c# và copy cái script ở dưới vào

using UnityEngine;
using System.Collections;

public class CharacterControllerTouches : MonoBehaviour {

 // set true on click. reset to false on reaching destination
 private bool _clicked = false;
 private Vector3 _endPoint;

 public float _duration = 5.0f;// speed of movement
 private float _yAxis; //vertical position of the gameObject
 

 void Start(){
 _yAxis = gameObject.transform.position.y;
 }

 void Update(){
 Debug.Log (_clicked);
 // check if screen is touch or click
 if((Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved) 
 || (Input.GetMouseButton(0)))
 {
 Debug.Log("vao if 1");
 RaycastHit hit;
 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 touch/click any collider
 if(Physics.Raycast(ray,out hit))
 {
 _clicked = true;
 _endPoint = hit.point;
 // get gameObject was hit 
 //hit.transform.gameObject;
 }

 }
 //check if clicked and not the same with the previous click
 if(_clicked) 
 {
 if(!Mathf.Approximately(gameObject.transform.position.magnitude, _endPoint.magnitude))
 { 
 _endPoint.y = _yAxis; // not change y axis
 gameObject.transform.position = Vector3.Lerp(gameObject.transform.position
 ,_endPoint, _duration*Time.deltaTime);
 Debug.Log("I am moving");
 }
 else
 {
 _clicked = false;
 Debug.Log("i am not click");
 }
 }
 }
}

you can change “_duration*Time.deltaTime”  to have a smooth movement as you want

Bạn có thể thay đổi “_duration*Time.deltaTime”  để duy chuyển được mượt hơn

step 4: add the script to the sphere or somethings else as you added /  thêm script  vào cái sphere mà bạn đã thêm vào

and then test it :))

Advertisements

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s