Четверг, 14 Ноября 2024, 22:12

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос-[ответ] по Unity
QWER56Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1
старожил
Сейчас нет на сайте
Вопрос-[Ответ] по Unity3d

  • База скриптов Unity3d
  • Курс Уроков по Unity 3D от Alcatraz

    ConsMark - поисковик по интернет магазинам.

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • NEBRДата: Понедельник, 27 Января 2014, 13:39 | Сообщение # 5441
    почти ветеран
    Сейчас нет на сайте
    Adom, команды на отключение одновременно всех не существует. Можно сделать ссылки на скрипты, и отлючить их в отдельном скрипте

    King Size #Gamiron12
    last2424Дата: Понедельник, 27 Января 2014, 13:45 | Сообщение # 5442
    30 мл. блоков
    Сейчас нет на сайте
    NEBR, твой способ помог. Только забыл что у меня версия 4.0.0 там ещё нет поддержки 2D, за место OnTriggerEnter2D поставил просто OnTriggerEnter, заместо Collider2D поставил Collider и всё заработало.

    Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
    NEBRДата: Понедельник, 27 Января 2014, 13:50 | Сообщение # 5443
    почти ветеран
    Сейчас нет на сайте
    last2424, хорошо ) Почитывайте оффициальный форум, там удобный поиск, я 80% проблем нааверное через него решаю )

    King Size #Gamiron12
    ParadizzzДата: Понедельник, 27 Января 2014, 17:09 | Сообщение # 5444
    был не раз
    Сейчас нет на сайте
    Как сделать что бы коллизия объекта не работала с персонажем, но работала со всем остальным.
    LaushДата: Понедельник, 27 Января 2014, 17:18 | Сообщение # 5445
    почти ветеран
    Сейчас нет на сайте
    Цитата allods ()
    Пускать рейкаст и проверять коллизию и название или таг обжекта
    Код
    var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
    var hitT : RaycastHit;
    if (Physics.Raycast (ray, hitT, 100.0))
    {
    if (Input.GetMouseButton(0))
    {
    if(hitT.collider.tag=="button")
    {

    Можно использовать GetMouseButton в заместо Touch оно работает и на андроиде

    А на C# Как сделать? Пытался перевести сам, что то плохо получилось?


    [PC/Android/iOS/WEB] 30 Days to survive
    [PC] Dead Defense
    [PC] Саламандра - история пирата


    Сообщение отредактировал Laush - Понедельник, 27 Января 2014, 17:43
    NEBRДата: Понедельник, 27 Января 2014, 17:26 | Сообщение # 5446
    почти ветеран
    Сейчас нет на сайте
    Цитата Paradizzz ()
    Как сделать что бы коллизия объекта не работала с персонажем, но работала со всем остальным.

    здесь либо убрать колайдер с игрока если она в принципе не нужна, либо использовать это
    Если речь идет о EnterCollision - то присвоить игроку определенный тег и проверять, столкновение с игроком произошло или нет.


    King Size #Gamiron12
    NEBRДата: Понедельник, 27 Января 2014, 17:28 | Сообщение # 5447
    почти ветеран
    Сейчас нет на сайте
    Laush, так этот код и не на C#. Там javascript

    King Size #Gamiron12

    Сообщение отредактировал NEBR - Понедельник, 27 Января 2014, 19:20
    ParadizzzДата: Понедельник, 27 Января 2014, 17:31 | Сообщение # 5448
    был не раз
    Сейчас нет на сайте
    NEBR, спасибо за ссылку , кажется разобрался.
    LaushДата: Понедельник, 27 Января 2014, 17:46 | Сообщение # 5449
    почти ветеран
    Сейчас нет на сайте
    Цитата NEBR ()
    Laush, так этот код и на C#. Там javascript

    Код

    using UnityEngine;
    using System.Collections;

    public class Click : MonoBehaviour {
      void Update() {
       var ray = Camera.main.ScreenPointToRay (Input.mousePosition);  
       var hitT : RaycastHit;  
       if (Physics.Raycast (ray, hitT, 100.0))  
       {  
        if (Input.GetMouseButton(0))  
        {  
         if(hitT.collider.tag=="button")  
         {  
        Debug.Log("Pressed left click.");
      }
    }
    }
      }
    }


    Unity3D ругаеться на строку
    Код
    var hitT : RaycastHit;

    на двоеточие


    [PC/Android/iOS/WEB] 30 Days to survive
    [PC] Dead Defense
    [PC] Саламандра - история пирата
    set16Дата: Понедельник, 27 Января 2014, 19:06 | Сообщение # 5450
    постоянный участник
    Сейчас нет на сайте
    Может на большую букву T в hitT smile

    =>The darkness of distant lands [3D]<=

    Сообщение отредактировал set16 - Понедельник, 27 Января 2014, 19:07
    LaushДата: Понедельник, 27 Января 2014, 19:11 | Сообщение # 5451
    почти ветеран
    Сейчас нет на сайте
    Цитата set16 ()
    Может на большую букву T в hitT

    та вроде нет


    [PC/Android/iOS/WEB] 30 Days to survive
    [PC] Dead Defense
    [PC] Саламандра - история пирата
    NEBRДата: Понедельник, 27 Января 2014, 19:30 | Сообщение # 5452
    почти ветеран
    Сейчас нет на сайте
    Laush, должен быть просто hit

    King Size #Gamiron12
    FumleadДата: Понедельник, 27 Января 2014, 19:31 | Сообщение # 5453
    участник
    Сейчас нет на сайте
    Laush, в шарпе объявление переменных другое пиши "RaycastHit hitT;"

    Параноик с гениальным планом по захвату мира.
    LaushДата: Понедельник, 27 Января 2014, 22:05 | Сообщение # 5454
    почти ветеран
    Сейчас нет на сайте
    Цитата NEBR ()
    должен быть просто hit

    Код
    using UnityEngine;  
    using System.Collections;  

    public class Click : MonoBehaviour {  
      void Update() {  
       var ray = Camera.main.ScreenPointToRay (Input.mousePosition);   
       var hit : RaycastHit;   
       if (Physics.Raycast (ray, hit, 100.0))   
       {   
        if (Input.GetMouseButton(0))   
        {   
         if(hit.collider.tag=="button")   
         {   
          Debug.Log("Pressed left click.");  
         }  
        }  
       }  
      }  
    }


    Ну вот код ошибки Assets/Scripts/Click.cs(7,25): error CS1525: Unexpected symbol `:', expecting `)', `,', `;', `[', or `='

    Добавлено (27.01.2014, 22:05)
    ---------------------------------------------
    Всё, сам уже нашел инфу, вот если кому нужно будет

    Код
    using UnityEngine;
    using System.Collections;

    public class Example : MonoBehaviour {

      // Update is called once per frame
      void Update () {
       if(Input.GetMouseButton(0))          //если нажата левая кнопка мыши (тапнули пальцем на андроиде/айосе), то
       {
        RaycastHit hit;                     //создаем новую точку соприкосновения луча (назовем это так, хотя возможно правильно это обозвать подругому)
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);                 //и сам луч, который будет направлен от курсора мыши вглубь экрана
        if(Physics.Raycast(ray, out hit, Mathf.Infinity))                //если созданный луч соприкоснулся с объектом                  
        {
         if(hit.collider.name == "Button")                          //и если этот объект имеет имя "button", то
         {
          Debug.Log("Pressed left click.");//выполняем что-то
         }

    }
       }
      }
    }


    [PC/Android/iOS/WEB] 30 Days to survive
    [PC] Dead Defense
    [PC] Саламандра - история пирата
    allodsДата: Понедельник, 27 Января 2014, 22:19 | Сообщение # 5455
    почти ветеран
    Сейчас нет на сайте
    Как можно узнать, включена функция в данный момент или нет, какой самый лучший способ

    Сообщение отредактировал allods - Понедельник, 27 Января 2014, 22:31
    WookieДата: Вторник, 28 Января 2014, 12:30 | Сообщение # 5456
    Decembear
    Сейчас нет на сайте
    Доброго времени суток!
    У меня такая проблема: Я сделал в скрипте массив для AudioClip, и добавил в него 10 звуковых файлов.
    Я запускаю проигрывание одного из клипов массива:
    Код

                   //tracks - массив
       audio.clip = tracks[0];
       audio.Play();

    А когда тестирую, Unity выдает это:
    Цитата
    MissingComponentException: There is no 'AudioSource' attached to the "Camera" game object, but a script is trying to access it.
    You probably need to add a AudioSource to the game object "Camera". Or your script needs to check if the component is attached before using it.
    character.Start () (at Assets/Scripts/C#/character.cs:16)

    Если добавлять аудиосорсы к камере, то музыка играет, но меня это не устраивает.

    Добавлено (28.01.2014, 12:30)
    ---------------------------------------------
    Что делать, кроме добавления сорсов (в UnityAnswers у людей все работало с массивом, судя по отзывам)?




    Сообщение отредактировал Wookie - Вторник, 28 Января 2014, 12:31
    NEBRДата: Вторник, 28 Января 2014, 12:42 | Сообщение # 5457
    почти ветеран
    Сейчас нет на сайте
    Wookie, Объект, на котором висит скрипт. В твоем случае главная камера. Нужно на этот объект добавить компонент AudioSource. Если не устраивает главная камера, создай пустышку, повесь на нее скрипт и AudioSource. Прикол в том что они оба должны висеть на одном объекте

    King Size #Gamiron12
    NEBRДата: Вторник, 28 Января 2014, 12:49 | Сообщение # 5458
    почти ветеран
    Сейчас нет на сайте
    Цитата allods ()
    Как можно узнать, включена функция в данный момент или нет, какой самый лучший способ

    мне в голову только дебаг приходит...


    King Size #Gamiron12
    NEBRДата: Вторник, 28 Января 2014, 12:50 | Сообщение # 5459
    почти ветеран
    Сейчас нет на сайте
    Цитата Laush ()
    Ну вот код ошибки Assets/Scripts/Click.cs(7,25): error CS1525: Unexpected symbol `:', expecting `)', `,', `;', `[', or `='

    в том случае надо было просто эту переменную объявить вне тела функции, вначале скрипта


    King Size #Gamiron12
    WookieДата: Вторник, 28 Января 2014, 13:05 | Сообщение # 5460
    Decembear
    Сейчас нет на сайте
    NEBR, спасибо, я просто не разобрался smile (подумал, что надо пихать аж 10 компонентов).

    Поиск:

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