UnityNinja Community
Would you like to react to this message? Create an account in a few clicks or log in to continue.

UnityNinja CommunityLog in

UnityNinja - Video Game Development Community, including Resources, Forums, Marketplace & More.


descriptionHow do I make a top-down game with click to move? EmptyHow do I make a top-down game with click to move?

more_horiz
Hello I am making an Animal Crossing game in Unity and I am having trouble making the game click to move. I have gotten the top down part done though.

Thank you and please help if you can Smile
Also check my game out here or here Very Happy

descriptionHow do I make a top-down game with click to move? EmptyRe: How do I make a top-down game with click to move?

more_horiz
To get started create a New Scene and name it whatever you want to. Add a Terrain to this scene or instead, you could add a Plane, it's left to you. Position it a (0, 0, 0). Add some material to it so that you can get a better picture of it’s.

Make sure that this Plane / Terrain that you have created has a Collider component attached to it.

Now add a GameObject of any kind, I'm adding a Sphere, because I'm partial to them. Position it at (0, 0.5, 0). Add a material of a different color to this Sphere.

Add a Directional Light to lighten up the scene.

Set the Main Camera Position to (0, 10, 0), Rotation to (90, 0, 0). Once you are done with that, the setup should look something like:

How do I make a top-down game with click to move? Untitled

Create a new C# script named TapToMove. Attach it to the GameObject you've just created. Save the scene and open the script.

Add the below code to it:
using UnityEngine;
using System.<span id="IL_AD1" class="IL_AD">Collections</span>;

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 <span id="IL_AD5" class="IL_AD">duration</span> = 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");
 }
 
}
}













Done! Now you can customize values to get what u want!


descriptionHow do I make a top-down game with click to move? EmptyRe: How do I make a top-down game with click to move?

more_horiz
Some more links

http://forum.unity3d.com/threads/free-click-to-move-script-camera-control.217056/

descriptionHow do I make a top-down game with click to move? EmptyRe: How do I make a top-down game with click to move?

more_horiz
Quote (Long) :

I Tried the tut and it gave me two errors
Assets/TapToMove.cs(2,20): error CS1041: Identifier expected
and
Assets/TapToMove.cs(2,36): error CS8025: Parsing error

descriptionHow do I make a top-down game with click to move? EmptyRe: How do I make a top-down game with click to move?

more_horiz
yellowwinner wrote:
Quote (Long) :

I Tried the tut and it gave me two errors
Assets/TapToMove.cs(2,20): error CS1041: Identifier expected
and
Assets/TapToMove.cs(2,36): error CS8025: Parsing error




It is working fine....

Download the Project

https://www.dropbox.com/s/35toiouzfd7qg99/export.unitypackage?dl=0

Last edited by mynametiger on Sun Mar 29, 2015 10:05 am; edited 1 time in total

descriptionHow do I make a top-down game with click to move? EmptyRe: How do I make a top-down game with click to move?

more_horiz
mynametiger wrote:
yellowwinner wrote:
Quote (Long) :

I Tried the tut and it gave me two errors
Assets/TapToMove.cs(2,20): error CS1041: Identifier expected
and
Assets/TapToMove.cs(2,36): error CS8025: Parsing error




It is working fine....

Download the Project

https://drive.google.com/open?id=0B7VHVXKpn84YbGNlUllDZEZ4Sms&authuser=0


It says I need access and to send a request. So I sent a request. The email should be yell***inn*****@*mail.com

descriptionHow do I make a top-down game with click to move? EmptyUpdated Link

more_horiz
Thanks! for reporting


yellowwinner wrote:
mynametiger wrote:
yellowwinner wrote:
Quote (Long) :

I Tried the tut and it gave me two errors
Assets/TapToMove.cs(2,20): error CS1041: Identifier expected
and
Assets/TapToMove.cs(2,36): error CS8025: Parsing error




It is working fine....

Download the Project

https://drive.google.com/open?id=0B7VHVXKpn84YbGNlUllDZEZ4Sms&authuser=0


It says I need access and to send a request. So I sent a request. The email should be yell***inn*****@*mail.com


https://www.dropbox.com/s/35toiouzfd7qg99/export.unitypackage?dl=0

descriptionHow do I make a top-down game with click to move? EmptyRe: How do I make a top-down game with click to move?

more_horiz
privacy_tip Permissions in this forum:
You cannot reply to topics in this forum
power_settings_newLogin to reply