Суббота, 07 Декабря 2024, 12:25

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Поднятие и бросок объектов Unity2D
MegaLolДата: Четверг, 23 Ноября 2017, 08:00 | Сообщение # 1
уже был
Сейчас нет на сайте
Всем Привет! Когда я нажимаю на любую часть экрана бот бросает и поднимает кубик . Как сделать так, чтобы только при нажатии на UI кнопку или определенную область бот поднимал и бросал кубик?
Скрипт
Код
public bool Grabbed;
RaycastHit2D hit;
public float Distance = 2f;
public Transform holdpoint;
public float Throwforce;
public LayerMask notgrabbed;

// Use this for initialization
void Start()
{
Start_Pause_Menu.paused = true;
Physics2D.queriesStartInColliders = false;

hit = Physics2D.Raycast(transform.position, Vector2.up * transform.localScale.y, Distance);
if (hit.collider != null && hit.collider.tag == "grabbable")
{
Grabbed = true;
}

}

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

if (Input.GetMouseButtonDown(0))
{

if (!Grabbed)
{
Physics2D.queriesStartInColliders = false;
hit = Physics2D.Raycast(transform.position, Vector2.up * transform.localScale.y, Distance);

if (hit.collider != null && hit.collider.tag == "grabbable")
{
Grabbed = true;
if (Buttons.isDouble == false)
{
ScoreScript.score_value += 1;
}
else
{
ScoreScript.score_value += 2;
}

}

//grab
}
else if (!Physics2D.OverlapPoint(holdpoint.position, notgrabbed))
{
Grabbed = false;
if (hit.collider.gameObject.GetComponent<Rigidbody2D>() != null)
{
hit.collider.gameObject.GetComponent<Rigidbody2D>().AddForce(Vector2.up * Throwforce);
}

//throw
}

}

if (Grabbed)
{
hit.collider.gameObject.transform.position = holdpoint.position;
hit.collider.gameObject.transform.localRotation = holdpoint.rotation;
}
}

void OnDrawGizmos()
{
Gizmos.color = Color.green;

Gizmos.DrawLine(transform.position, transform.position + Vector3.up * transform.localScale.y * Distance);
}


Сообщение отредактировал MegaLol - Четверг, 23 Ноября 2017, 13:23
TLTДата: Суббота, 25 Ноября 2017, 14:33 | Сообщение # 2
Сейчас нет на сайте
Это основы программирования. Вставляешь обработку: Если координата X и/или Y + габариты объекта кнопки равны координате клика, то выполняется код.

Дао, выраженное словами, не есть истинное Дао.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг