using UnityEngine; using System.Collections; public class Player : MonoBehaviour { float maxSpeed = 10f; Animator anim; bool faceright = true; bool grounded = false; float groundRadius = 0.2f; public Transform groundCheck; public LayerMask whatIsGround; float jumpForce = 600f; float move = 0; //gui button public GUIStyle customButton; public Texture btnTexture1,btnTexture2,btnTexture3; private Rect posBtnJump =new Rect(Screen.width - 80,Screen.height -80, 70, 70); private Rect posBtnLeft =new Rect(10,Screen.height - 80, 70, 70); private Rect posBtnRight =new Rect(90,Screen.height - 80, 70, 70); // Use this for initialization void Start () { anim = GetComponent(); } void FixedUpdate(){ grounded = Physics2D.OverlapCircle(groundCheck.position, groundRadius, whatIsGround); anim.SetBool("Ground",grounded); //if(!grounded)return; //using arrow on keyboard //move = Input.GetAxis("Horizontal"); transform.Translate(new Vector2(move * maxSpeed * Time.deltaTime,0)); //rigidbody2D.velocity = new Vector2(move * maxSpeed,rigidbody2D.velocity.y); anim.SetFloat("Speed", Mathf.Abs(move)); //flip if(move > 0 && !faceright){flip();}else if(move < 0 && faceright){flip();} } //Flipping player void flip(){ faceright = !faceright; Vector3 theScale = transform.localScale; theScale.x *= -1; transform.localScale = theScale; } // Update is called once per frame void Update () { /* Jump using Space * if (Input.GetKeyDown(KeyCode.Space) && grounded){ anim.SetBool("Ground",false); rigidbody2D.AddForce(new Vector2(0, jumpForce)); grounded = false; }*/ for (int i = 0; i < Input.touchCount; ++i){ Touch touch = Input.GetTouch(i); // Get touch point and invert Y-axis. Vector2 touchPoint = touch.position; touchPoint.y = Screen.height - touchPoint.y; if (touch.phase == TouchPhase.Began){ if (posBtnJump.Contains(touchPoint) && grounded){ anim.SetBool("Ground",false); rigidbody2D.AddForce(new Vector2(0, jumpForce)); grounded = false; } } if (touch.phase == TouchPhase.Stationary){ if (posBtnLeft.Contains(touchPoint)){ move= -1f; }else if (posBtnRight.Contains(touchPoint)){ move= 1f; } }else{ move = 0; } } //Exit application if (Input.GetKeyUp(KeyCode.Escape)){ Application.Quit(); return; } } void OnGUI() { if (!btnTexture1 || !btnTexture2 || !btnTexture3) { Debug.LogError("Please assign a texture on the inspector"); return; } //left GUI.RepeatButton(posBtnLeft, btnTexture1, customButton); //right GUI.RepeatButton(posBtnRight, btnTexture2, customButton); //jump GUI.Button(posBtnJump, btnTexture3, customButton); } }
Unity Android OnGUI Controller
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment
Silahkan