| 
				
				Вопрос-[ответ] по Unity
				 | 
 | 
| QWER56 | Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1 |  
 
старожил 
Сейчас нет на сайте 
 
 | Вопрос-[Ответ] по Unity3d 
    База скриптов Unity3d    Курс Уроков по Unity 3D от Alcatraz
  ConsMark - поисковик по интернет магазинам.
 
 Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54  |  
| 
 | 
 |    | 
| Artem93region | Дата: Суббота, 14 Ноября 2015, 12:15 | Сообщение # 7421 |  
| 
 был не раз 
Сейчас нет на сайте 
 
 | Спасибо за ответ но есть ещё вопросы: 1)Тег игроку присвоил, создал скрипт и повесил на триггер, создал boolean переменную. В OnTriggerEnter проверку тоже сделал и в OnTriggerExit аналогично. Вот скрипт:
 
 Код using UnityEngine; using System.Collections;
  public class TriggerForDestroy : MonoBehaviour {
  public GameObject click; public bool _visable;
  void OnTriggerEnter(Collider other){ if(other.CompareTag("Player")){ click.SetActive(true); click.GetComponent<take>().enabled=true; Debug.Log("OnTriggerEnter"); _visable = true; } } void OnTriggerExit(Collider other){ if(other.CompareTag("Player")){
  click.SetActive(false); click.GetComponent<take>().enabled=false; Debug.Log("OnTriggerExit"); _visable = false; } } }
  2) Далее присвоил префабу свой тег (я кстати от проверки на нажатие по UI Image из нового гуи решил отказаться, а решил использовать UI Butoon повесив на него скрипт и при нахождении игрока в триггере поставил отображение этой самой кнопки) а вот на кнопке я и завис:
  using UnityEngine; using System.Collections;
  public class take : MonoBehaviour {
  void Start () {
  }
  public void Method () {
  GameObject[] gos; gos = GameObject.FindGameObjectsWithTag("TriggerPapers");
  if(gos._visable == true){
  Debug.Log("visable == true");
  } } }
   тут юнити ругается на _visable
  Error CS1061: "System.Array" не содержит определение для "_visable". Не удалось найти метод расширения "_visable", принимающий первый аргумент типа "System.Array" (пропущено использование директивы или ссылка на сборку?) (CS1061) (Assembly-CSharp)
  и ещё как потом сделать чтобы удалился именно тот обьект у которого поменялась эта переменнныя, чтобы не все сразу?
 
 Сообщение отредактировал Artem93region - Суббота, 14 Ноября 2015, 12:21  |  
| 
 | 
 |    | 
| SkorpyX | Дата: Суббота, 14 Ноября 2015, 13:57 | Сообщение # 7422 |  
 
участник 
Сейчас нет на сайте 
 
 | Artem93region, во-первых, в вашем скрипте gos это массив GameObjectов, там вы обращаетесь напрямую к массиву, а нужно перебирать его в цикле. Во-вторых _visable - это переменная вашего скрипта, а не GameObjectа, следовательно нужно обращаться к скрипту через GetComponent. Пример на js :
 Код  var gos : GameObject[] = GameObject.FindGameObjectsWithTag("TriggerPapers");
  for (gs in gos) {     if (gs.GetComponent.<TriggerForDestroy>()._visable == true) {         Debug.Log("visable == true");     } }
 
  
 
 Сообщение отредактировал SkorpyX - Суббота, 14 Ноября 2015, 13:57  |  
| 
 | 
 |    | 
| Artem93region | Дата: Суббота, 14 Ноября 2015, 15:07 | Сообщение # 7423 |  
| 
 был не раз 
Сейчас нет на сайте 
 
 | Перевёл на CS получилось так:
 
 Код GameObject[] gos = GameObject.FindGameObjectsWithTag("TriggerPapers");
  foreach(object gs in gos) { if (gs.GetComponent.<"TriggerPapers">()._visable == true) { Debug.Log("visable == true"); }
  Сдесь на сколько я правильно понял, в первой строке обращаемся ко всем обьектам с тегом "TriggerPapers" далее выбираются все объекты в массиве, где к каждому можно обратиться как "gs"
  foreach(object gs in gos)
  затем в условии указывается этот самый gs потом его компонент, в котором указывается триггер и проверяется условие, но снова ошибка
  using UnityEngine; using System.Collections;
  public class take : MonoBehaviour {
  void Start () { }
  public void Method () {
  GameObject[] gos = GameObject.FindGameObjectsWithTag("TriggerPapers"); foreach(GameObject gs in gos) { if (gs.GetComponent.<"TriggerPapers">()._visable == true) //Error CS1001: Ожидался идентификатор (CS1001) (Assembly-CSharp) Error CS1525: Недопустимый терм ')' в выражении (CS1525) (Assembly-CSharp) Error CS1026: ожидалась ) (CS1026) (Assembly-CSharp) { Debug.Log("visable == true"); } } } }
  далее если меняю
  if (gs.GetComponent.<"TriggerPapers">()._visable == true)
  на
  if (gs.GetComponent.(TriggerPapers)._visable == true)
  то пишет только 
  Error CS1001: Ожидался идентификатор (CS1001) (Assembly-CSharp)
  гуглю гуглю не могу разобрать как исправить?
 
 Сообщение отредактировал Artem93region - Суббота, 14 Ноября 2015, 15:40  |  
| 
 | 
 |    | 
| NEBR | Дата: Суббота, 14 Ноября 2015, 15:28 | Сообщение # 7424 |  
 
почти ветеран 
Сейчас нет на сайте 
 
 | Цитата Artem93region (  )  if (gs.GetComponent.(TriggerPapers)._visable == true;)  дружище, зачем здесь точка с запятой? )) Пиши просто  if (gs.GetComponent.(TriggerPapers)._visable)
  King Size #Gamiron12
 |  
| 
 | 
 |    | 
| Artem93region | Дата: Суббота, 14 Ноября 2015, 15:31 | Сообщение # 7425 |  
| 
 был не раз 
Сейчас нет на сайте 
 
 | NEBR, да я за был убрать это я экспериментировал) спасибо за замечание поправил без неё так же ругается
 
 Сообщение отредактировал Artem93region - Суббота, 14 Ноября 2015, 15:51  |  
| 
 | 
 |    | 
| SkorpyX | Дата: Суббота, 14 Ноября 2015, 15:45 | Сообщение # 7426 |  
 
участник 
Сейчас нет на сайте 
 
 | Цитата Artem93region (  )  gs.GetComponent.<"TriggerPapers">()._visable == true)  Кавычки лишние
 
 Сообщение отредактировал SkorpyX - Суббота, 14 Ноября 2015, 15:47  |  
| 
 | 
 |    | 
| Artem93region | Дата: Суббота, 14 Ноября 2015, 15:53 | Сообщение # 7427 |  
| 
 был не раз 
Сейчас нет на сайте 
 
 | Цитата SkorpyX (  )  gs.GetComponent.<"TriggerPapers">()._visable == true)
  Кавычки лишние   пробовал тоже их убирать, те же ошибки остаються
 
 Сообщение отредактировал Artem93region - Суббота, 14 Ноября 2015, 15:54  |  
| 
 | 
 |    | 
| SkorpyX | Дата: Суббота, 14 Ноября 2015, 15:55 | Сообщение # 7428 |  
 
участник 
Сейчас нет на сайте 
 
 | Цитата Artem93region (  )  пробовал тоже их убирать, тогда аж 6 ошибок появляется  TriggerPapers - это название вашего префаба, должно быть :
 Код  gs.GetComponent.<TriggerForDestroy>()._visable == true;
 
  
 |  
| 
 | 
 |    | 
| Artem93region | Дата: Суббота, 14 Ноября 2015, 17:37 | Сообщение # 7429 |  
| 
 был не раз 
Сейчас нет на сайте 
 
 | Цитата SkorpyX (  )  пробовал тоже их убирать, тогда аж 6 ошибок появляется
  TriggerPapers - это название вашего префаба, должно быть : Код
  gs.GetComponent.<TriggerForDestroy>()._visable == true; 
  а я тег указал) ща попробуюДобавлено (14 ноября 2015, 16:07) --------------------------------------------- всё равно не получается те же ошибки и название префаба выделено красным Добавлено (14 ноября 2015, 17:37) --------------------------------------------- Вот сделал пак:
  http://rghost.ru/8MKr4wqmm 
 
 Сообщение отредактировал Artem93region - Суббота, 14 Ноября 2015, 16:04  |  
| 
 | 
 |    | 
| beril | Дата: Суббота, 14 Ноября 2015, 23:37 | Сообщение # 7430 |  
 
Я не ленивый, я — энергосберегающий 
Сейчас нет на сайте 
 
 | Ну у тебя Visual Studio ? Он же должен показывать где ошибка в какой строке
 
         Накодил? Убери за собой!   Инвентарь в Unity(UI)   Инвентарь в Unity(GUI) 
 |  
| 
 | 
 |    | 
| Artem93region | Дата: Суббота, 14 Ноября 2015, 23:50 | Сообщение # 7431 |  
| 
 был не раз 
Сейчас нет на сайте 
 
 | Цитата beril (  )  Ну у тебя Visual Studio ? Он же должен показывать где ошибка в какой строке  
  ошибка в этой строке:
  if(gs.GetComponent.<TriggerForDestroy>()._visable == true){ }
  Error CS1001: Ожидался идентификатор (CS1001) (Assembly-CSharp) Error CS1525: Недопустимый терм ')' в выражении (CS1525) (Assembly-CSharp) Error CS1026: ожидалась ) (CS1026) (Assembly-CSharp)Добавлено (14 ноября 2015, 23:50) --------------------------------------------- всё не могу сделать проверку переменной и кстати редактирую в юньковском редакторе 
 |  
| 
 | 
 |    | 
| wasterman | Дата: Воскресенье, 15 Ноября 2015, 03:25 | Сообщение # 7432 |  
 
частый гость 
Сейчас нет на сайте 
 
 | Привет! Хочу уточнить, вот этот код пускает луч из точки в точку RaycastHit hit; Ray ray = new Ray(transform.position, player.transform.position - transform.position); а вот этот пускает допустим на единицу выше (метр) RaycastHit hit; Ray ray = new Ray(transform.position+ Vector3.up, player.transform.position - transform.position+ Vector3.up); вот сам вопрос, как пустить луч ниже?  Писал  Ray ray = new Ray(transform.position+ Vector3.up/2, player.transform.position - transform.position+ Vector3.up/2); Но такой вариант не всегда срабатывает правильно.  брал в скобки и код отказывался работать  Ray ray = new Ray(transform.position+ (Vector3.up/2), player.transform.position - transform.position+ (Vector3.up/2)); так как же все таки пустить этот луч выше чем из нижней точки?
  Рок форева!   Не графоМан!   Холодный космос.    
 |  
| 
 | 
 |    | 
| Pocifik | Дата: Воскресенье, 15 Ноября 2015, 14:23 | Сообщение # 7433 |  
| 
 участник 
Сейчас нет на сайте 
 
 | Artem93region, точки не должно быть перед "<".
 |  
| 
 | 
 |    | 
| Artem93region | Дата: Воскресенье, 15 Ноября 2015, 23:23 | Сообщение # 7434 |  
| 
 был не раз 
Сейчас нет на сайте 
 
 | Всё, на конец-то мне помогли разобраться, в итоге всё разместилось в одном скрипте, а так же поменялся сам подход к решению данной задаче, в общем заработало)
 |  
| 
 | 
 |    | 
| allods | Дата: Среда, 25 Ноября 2015, 22:14 | Сообщение # 7435 |  
 
почти ветеран 
Сейчас нет на сайте 
 
 | Ребят помогите правильно повернуть 2Д объект через рейкаст + угол рейкаста к поверхности Есть объект кидаю рейкаст в 4 стороны: верх , низ, лево, право Если есть соприкосновение лучей то выбираю самый близкий/короткий . Дальше нахожу Vector2 reflect и угол падения луча на коллайдер. Есть такие данные. Но иногда смотрит совсем в другую сторону. Дело в угле луча. он всегда в позитиве. Я не могу понять как правильно вычислять и вертеть
 
 Цитата Vector2 incomingVec = hits [0].point - new Vector2 (transform.position.x, transform.position.y); 			reflectVec = Vector2.Reflect (incomingVec, hits [0].normal); 			angleHit = Vector2.Angle (reflectVec, hits [0].normal);  вот рефлект и угол а как дальше вертеть
 |  
| 
 | 
 |    | 
| JessyStorm | Дата: Четверг, 26 Ноября 2015, 10:29 | Сообщение # 7436 |  
 
заслуженный участник 
Сейчас нет на сайте 
 
 | Гайс, если кто-нибудь разбирается в шейдерном коде в юньке, интересуют fragment&vertex шейдеры, черканите в личку или скайп - psihrus1, спасибо.
  https://www.artstation.com/artist/jessystorm
 |  
| 
 | 
 |    | 
| Excelsiorer | Дата: Вторник, 01 Декабря 2015, 13:47 | Сообщение # 7437 |  
 
частый гость 
Сейчас нет на сайте 
 
 | Движение реализованно стандартным FirstPersonController. Как мне из другого скрипта изменить скорость движения персонажа в FirstPersonController?
 |  
| 
 | 
 |    | 
| xMoonGuarDx | Дата: Вторник, 01 Декабря 2015, 14:56 | Сообщение # 7438 |  
| 
 участник 
Сейчас нет на сайте 
 
 | Excelsiorer, передать ссылку на контроллер в изменяющий скрипт.
 |  
| 
 | 
 |    | 
| Excelsiorer | Дата: Вторник, 01 Декабря 2015, 15:05 | Сообщение # 7439 |  
 
частый гость 
Сейчас нет на сайте 
 
 | xMoonGuarDx, А как дальше изменить скорость? Просто обратиться к переменным в скрипте FirstCharacterController не получается, выдает ошибку
 |  
| 
 | 
 |    | 
| MANMANA | Дата: Среда, 02 Декабря 2015, 20:16 | Сообщение # 7440 |  
| 
 почти ветеран 
Сейчас нет на сайте 
 
 | Цитата xMoonGuarDx (  )  xMoonGuarDx, А как дальше изменить скорость? Просто обратиться к переменным в скрипте FirstCharacterController не получается, выдает ошибку  информативненько http://answers.unity3d.com/questio....ri.html http://answers.unity3d.com/questio....pe.html
  http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг   VKонтакте 3Dbuffer 
   Последнее: 
   Новый раздел "Текстуры" 
   Как запатентовать, защитить техническое решение, игру, идею
 |  
| 
 | 
 |    |