@novichekvunity

Как сделать тач на unity?

using UnityEngine;
using System.Collections;

public class chel : MonoBehaviour
{
public Rigidbody2D rb;
public float jumpForce;
public float speed;

private void Update()
{
if (Input.GetKey(KeyCode.A))
{
transform.Translate(Vector2.left * speed * Time.deltaTime);
}
if (Input.GetKey(KeyCode.D))
{
transform.Translate(Vector2.right * speed * Time.deltaTime);
}
}
private void OnCollisionEnter2D(Collision2D collision)
{
rb.velocity = new Vector2(0, 0);
rb.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse);
}

}
Я пытался сделать игру на подобии doodle jump для андроид, но в передвижении я поставил кнопки a(налево) и d(направо). Как сделать так чтобы двигаться можно было нажатиями на экран смартфона?
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ответы на вопрос 1
B-Erolskiy
@B-Erolskiy
Junior C#/PHP Developer
Отслеживать нажатие на панель с помощью интерфейсов IPointerEnterHandler, IPointerExitHandler, прикрепленных к скрипту объекта. Параметром методов, реализуемых этими интерфейсами, будет PointerEventData, с помощью его свойства eventData.pressPosition.x можно понять, где было сделано нажатие.
Соответственно, останется посчитать, было ли нажатие на левую или правую часть экрана. Сделать это очень просто:
bool isRightClick = eventData.pressPosition.x > Screen.width / 2;
bool isLeftClick = eventData.pressPosition.x < Screen.width / 2;

Screen.width, конечно, стоит закешировать.
Соответственно, если нажатие на левую часть экрана, обрабатываем передвижение влево, и наоборот.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы