- Home /
Question by
zKiel · Sep 27, 2015 at 09:17 PM ·
mobilecontroller
How to Add player Mobile control to move to my game?
I Can't find how to put mobile control to my game i tried some but they are not working. the thing that i want is when you drag the player will move here is my code:
using UnityEngine;
using System.Collections;
[System.Serializable]
public class Boundary
{
public float xMin, xMax, yMin, yMax; //Screen Boundary dimentions
}
public class Player_Script : MonoBehaviour
{//1
//Public Var
public float speed; //Player Ship Speed
public Boundary boundary; //make an Object from Class Boundary
public GameObject shot; //Fire Prefab
public Transform shotSpawn; //Where the Fire Spawn
public float fireRate = 0.5F; //Fire Rate between Shots
public GameObject Explosion; //Explosion Prefab
//Private Var
private float nextFire = 0.0F; //First fire & Next fire Time
// Update is called once per frame
void Update ()
{
//Excute When the Current Time is bigger than the nextFire time
if (Time.time > nextFire)
{
nextFire = Time.time + fireRate; //Increment nextFire time with the current system time + fireRate
Instantiate (shot , shotSpawn.position ,shotSpawn.rotation); //Instantiate fire shot
GetComponent<AudioSource>().Play (); //Play Fire sound
}
if (Input.touchCount > 0)
{
// The screen has been touched so store the touch
Touch touch = Input.GetTouch(0);
if (touch.phase == TouchPhase.Stationary || touch.phase == TouchPhase.Moved) {
// If the finger is on the screen, move the object smoothly to the touch position
Vector3 touchPosition = Camera.main.ScreenToWorldPoint(new Vector3(touch.position.x, touch.position.y, 10));
transform.position = Vector3.Lerp(transform.position, touchPosition, Time.deltaTime);
}
}
}
// FixedUpdate is called one per specific time
void FixedUpdate ()
{//3
float moveHorizontal = Input.GetAxis ("Horizontal"); //Get if Any Horizontal Keys pressed
float moveVertical = Input.GetAxis ("Vertical"); //Get if Any Vertical Keys pressed
Vector2 movement = new Vector2 (moveHorizontal, moveVertical); //Put them in a Vector2 Variable (x,y)
GetComponent<Rigidbody2D>().velocity = movement * speed; //Add Velocity to the player ship rigidbody
//Lock the position in the screen by putting a boundaries
GetComponent<Rigidbody2D>().position = new Vector2
(
Mathf.Clamp (GetComponent<Rigidbody2D>().position.x, boundary.xMin, boundary.xMax), //X
Mathf.Clamp (GetComponent<Rigidbody2D>().position.y, boundary.yMin, boundary.yMax) //Y
);
}//3
//Called when the Trigger entered
void OnTriggerEnter2D(Collider2D other)
{//2
//Excute if the object tag was equal to one of these
if(other.tag == "Enemy" || other.tag == "Asteroid" || other.tag == "EnemyShot")
{
Instantiate (Explosion, transform.position , transform.rotation); //Instantiate Explosion
SharedValues_Script.gameover = true; //Trigger That its a GameOver
Destroy(gameObject); //Destroy Player Ship Object
}
}//2
}//1
Comment
Your answer

Follow this Question
Related Questions
Unity swipe controlls mobile 0 Answers
Help with crouch button (MOBILE CONTROL) 0 Answers
How to give user controls for the moble devices(Android) 1 Answer
Mobile Controller and Game Controller 0 Answers
Swipe menu, problem! 0 Answers