Добавление сенсорных элементов управления к контроллеру символов? Unity2d

#c# #android #unity3d #touch #controls

#c# #Android #unity-игровой движок #коснитесь #элементы управления

Вопрос:

Есть этот простой контроллер персонажа, который перемещает моего персонажа из платформера влево и вправо с помощью переворота.

Надеялся, что кто-нибудь сможет интегрировать или показать мне, как добавить сенсорные элементы управления для Android / ios.

Просто коснитесь левой части экрана, чтобы перейти влево, и правой стороны, чтобы перейти вправо.

Спасибо

 using UnityEngine;
using System.Collections;

public class RobotController : MonoBehaviour {
//This will be our maximum speed as we will always be multiplying by 1
public float maxSpeed = 2f;
//a boolean value to represent whether we are facing left or not
bool facingRight = false;
//a value to represent our Animator
Animator anim;
// Use this for initialization
void Start () {
    //set anim to our animator
    anim = GetComponent<Animator>();

}

// Update is called once per frame
void FixedUpdate () {

    float move = Input.GetAxis ("Horizontal");//Gives us of one if we are moving via the arrow keys
    //move our Players rigidbody
    rigidbody2D.velocity = new Vector3 (move * maxSpeed, rigidbody2D.velocity.y);
    //set our speed
    anim.SetFloat ("Speed",Mathf.Abs (move));
    //if we are moving left but not facing left flip, and vice versa
    if (move < 0 amp;amp; !facingRight) {

        Flip ();
    } else if (move > 0 amp;amp; facingRight) {
        Flip ();
    }
}

//flip if needed
void Flip(){
    facingRight = !facingRight;
    Vector3 theScale = transform.localScale;
    theScale.x *= -1;
    transform.localScale = theScale;
}
}
  

Ответ №1:

В методе Update() вы захотите использовать цикл foreach, который перебирает все события касания в этом конкретном обновлении фрейма.

 foreach(Touch touch in Input.touches)
{
    if(leftButton.HitTest(touch.position))
    {
        //move character left
    }

    if(rightButton.HitTest(touch.position))
    {
        //move character right
    }
}
  

Предполагается, что вы настраиваете две кнопки GUITexture для левого и правого элементов управления в методе start().

Комментарии:

1. Рахин, спасибо за ответ. Итак, могу ли я сделать что-то вроде двух огромных прозрачных кнопок с каждой стороны экрана, как мне связать ваш код с этими объектами?