| Помощь по кнопкам в Unity | 
|  | 
| 
| Voronin1337 | Дата: Четверг, 09 Марта 2017, 19:06 | Сообщение # 1 |  |   был не раз Сейчас нет на сайте | Код using UnityEngine;using System.Collections;
 
 public class Buttams : MonoBehaviour
 {
 public Sprite[] layer;
 public string[] Scene;
 public GameObject Car;
 
 void OnMouseDown()
 {
 GetComponent<SpriteRenderer>().sprite = layer[1];
 }
 void OnMouseUp()
 {
 GetComponent<SpriteRenderer>().sprite = layer[0];
 }
 void OnMouseUpAsButton()
 {
 switch (gameObject.name)
 {
 case "Play":
 Application.LoadLevel(Scene[0]);
 break;
 case "right":
 Car.transform.Translate(new Vector3(-1,0,0)* Time.deltaTime);
 break;
 case "left":
 Car.transform.Translate(new Vector3(1, 0, 0) * Time.deltaTime);
 break;
 }
 }
 
 }
Что нужно сделать чтобы действия в операторе switch выполнялись пока кнопка зажата ?
 |  |  |  |  | 
| 
| URGINSAN | Дата: Четверг, 09 Марта 2017, 19:53 | Сообщение # 2 |  |   почти ветеран Сейчас нет на сайте | Voronin1337, например, вместо switch воспользоваться if, + сделать bool флаг нажата ли клавиша или нет. Типа вот так:
 
 Код bool mouseAct = false;
 void OnMouseDown()
 {
 mouseAct = true;
 }
 void OnMouseUp()
 {
 mouseAct = false;
 }
 И дальше в OnMouseUpAsButton() делай проверку на этот флаг.
 
 Я на драйве
 
 
 Сообщение отредактировал URGINSAN - Четверг, 09 Марта 2017, 19:54 |  |  |  |  | 
| 
| Voronin1337 | Дата: Четверг, 09 Марта 2017, 22:17 | Сообщение # 3 |  |   был не раз Сейчас нет на сайте | Код {
 public Sprite[] layer;
 private bool rox;
 public GameObject Car;
 void OnMouseDown()
 {
 GetComponent<SpriteRenderer>().sprite = layer[1];
 rox = true;
 }
 void OnMouseUp()
 {
 GetComponent<SpriteRenderer>().sprite = layer[0];
 rox = false;
 }
 void OnMouseUpAsButton()
 {
 if (rox == true)
 {
 Car.transform.Translate(new Vector3(1, 0, 0) * Time.deltaTime);
 }
 }
 }
Сделал вот ток всё равно не работает
 |  |  |  |  | 
| 
| URGINSAN | Дата: Четверг, 09 Марта 2017, 22:31 | Сообщение # 4 |  |   почти ветеран Сейчас нет на сайте | Цитата Voronin1337 (  )  void OnMouseUpAsButton()Эта строчка куда идет?
 Можешь описать подробнее свое управление?
 
 Я на драйве
 |  |  |  |  | 
| 
| Voronin1337 | Дата: Четверг, 09 Марта 2017, 22:44 | Сообщение # 5 |  |   был не раз Сейчас нет на сайте | http://s1.uploadpics.ru/images/WJ0-ytLbzM.png Эти две кнопки(которые на скрине) отвечают за движение машины в право в лева.
 я поменял скрин
 
 
 Сообщение отредактировал Voronin1337 - Четверг, 09 Марта 2017, 22:55 |  |  |  |  | 
| 
| seaman | Дата: Четверг, 09 Марта 2017, 22:52 | Сообщение # 6 |  | старожил Сейчас нет на сайте | 1. Как уже заметили - Ваш метод OnMouseUpAsButton никогда не будет вызван. 2. Если Вы спрашиваете о чем то - потрудитесь на скрине выделять именно тот объект, о котором спрашиваете. У Вас в скрипте объявлен массив layer. Что в нем? Судя по ошибка на скрине - ничего. Но лучше все же это показать.
 
 
 Сообщение отредактировал seaman - Четверг, 09 Марта 2017, 22:53 |  |  |  |  | 
| 
| Voronin1337 | Дата: Четверг, 09 Марта 2017, 22:59 | Сообщение # 7 |  |   был не раз Сейчас нет на сайте | Цитата seaman (  )  1. Как уже заметили - Ваш метод OnMouseUpAsButton никогда не будет вызван.
 Он вызывается после того как нажал и отпустил кнопку ,а не постоянно пока зажата кнопка
 
 
 Сообщение отредактировал Voronin1337 - Четверг, 09 Марта 2017, 23:03 |  |  |  |  | 
| 
| URGINSAN | Дата: Пятница, 10 Марта 2017, 00:21 | Сообщение # 8 |  |   почти ветеран Сейчас нет на сайте | Voronin1337, реши проблему с ошибками в консоли сначала. Когда идут ошибки во время рантайма - остальной код 90% не будет работать. 
 Я на драйве
 |  |  |  |  |