Воскресенье, 17 Ноября 2024, 17:49

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

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

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

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

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • _LeVoID_Дата: Суббота, 03 Декабря 2011, 21:48 | Сообщение # 1181
    VoID
    Сейчас нет на сайте
    Duskly, мда. Ты уточни, блин, что нужно. wink

    QLines v1.3
    Forest Owl
    DusklyДата: Суббота, 03 Декабря 2011, 22:01 | Сообщение # 1182
    Rush Games
    Сейчас нет на сайте
    в чем проблема??
    Code
    //прицеливание между несколькими целями
    using UnityEngine;
    using System.Collections;
    //устанавливаем дополнительную систему для возможности работать с ластингами
    using System.Collections.Generic;

    public class Targetting : MonoBehaviour {
      //определяем переменную как хранилище всех врагов
      public List<Transform> targets;
       
      //внутренняя переменная, для хранения текущей цели
      public Transform selectedTarget;
       
      private Transform myTransform;
       
      // Use this for initialization
      void Start () {
       //назначаем новой переменной первое значение - пустой листинг
       targets = new List<Transform>();
       myTransform = transform;
       AddAllEnemies();
      }
       
      // Update is called once per frame
      void Update () {
       if(Input.GetKeyDown(KeyCode.Tab)){
        // выбираем цель клавишей Tab
        TargetEnemy();
       }
        
      }
      //поиск и добавление всех противников в список
      public void AddAllEnemies(){
       //помещаем всех врагов в массив go
       GameObject[] go = GameObject.FindGameObjectsWithTag("Enemy");
       //каждый элемент из найденых засовываем в массив потенциальных целей
       foreach(GameObject enemy in go);
        AddTarget(enemy.transform);
      }
      //метод по добавлению в массив очередного элемента
      public void AddTarget(Transform enemy)
      {
      targets.Add(enemy);
      }
      //выбор конкрутной цели из списка
      private void TargetEnemy()
      {
       //усли не выбрано ни одной, сортируем список по дистанции
       //и выбираем первый элемент - ближайший
       if(selectedTarget == null){
        SortTargetByDisrance();
        selectedTarget = targets[0];
      }
      else
      {
        //иначе занимаемся перебором по циклу от первого к последнему
        int index = targets.IndexOf(selectedTarget);
        if(index < targets.Count -1){
         index ++;
        }
        else
        {
         index =0;
        }
        //снимаем пометку с текущей цели
        DeselectTarget();
        // выбираем следующую
        selectedTarget = targets[index];
        //метим ее цветом
       }
       SelectTarget();
        
      }
      //сортировка элементов списка по расстооянию до игрока...
      //тут
    private void SortTargetByDistance()
      {
       targets.Sort(delegate(Transform t1, Transform t2)
           {
         return Vector3.Distance(t1.position,myTransform.position).CompareTo(Vector3.Distance(t2.position,myTransform.position));
        });
      }
      //метим выбранный элемент - врага цветом
      private void SelectTarget()
      {
       selectedTarget.renderer.material.color = Color.red;
       //Ищем компоннент PlayerAttack, который находится на этом же обьекте
       PlayerAttack pa = (PlayerAttack)GetComponent("PlayerAttack");
       //и назначаем цели атаки другую цель или новую
       pa.target = selectedTarget.gameObject;
       //активируем показ бара здоровья у Enemy обьекта
       EnemyHealth eh = (EnemyHealth)selectedTarget.gameObject.GetComponent("EnemyHealth");
       eh.ShowHealthBar();
      }
       
      //Убираем пометку выбранный цели
      private void DeSelectTarget()
      {
       selectedTarget.renderer.material.color = Color.white;
       //девктивируем показ здоровья у Enemy обьекта
       EnemyHealth eh = (EnemyHealth)selectedTarget.gameObject.GetComponent("EnemyHealth");
       eh.HideHealthBar();
      }

    Скрин:



    Разрабатываеться:
    флеш игра для соц. Сетей (Бои друзей) - временное название!
    3д игра (пока без названия)
    pixeyeДата: Суббота, 03 Декабря 2011, 22:28 | Сообщение # 1183
    Red Winter Software
    Сейчас нет на сайте
    Quote (Duskly)
    в чем проблема??


    c тем что не умеешь читать. Скорее копипастить, обычно при копипасте такая ошибка возникает;-)

    Поставь еще одну } в конце своего кода.


    ACTORS - мой фреймворк на Unity
    Until We Die - игра над которой работаю



    Сообщение отредактировал pixeye - Суббота, 03 Декабря 2011, 22:29
    seamanДата: Суббота, 03 Декабря 2011, 23:05 | Сообщение # 1184
    старожил
    Сейчас нет на сайте
    У меня появилась мысль, что автор урока, с которого этот скрипт специально завершающую скобку не поставил, чтобы хоть чуток думали, а не просто копипастили. Т.к. уже пятый раз натыкаюсь на одну и ту же ошибку в этом скрипте. Правда теперь у нас гемора больше, т.к. думает меньшинство, большинство не привыкли к этому.
    DusklyДата: Воскресенье, 04 Декабря 2011, 01:43 | Сообщение # 1185
    Rush Games
    Сейчас нет на сайте
    pixeye, не помогло


    Разрабатываеться:
    флеш игра для соц. Сетей (Бои друзей) - временное название!
    3д игра (пока без названия)
    pixeyeДата: Воскресенье, 04 Декабря 2011, 02:24 | Сообщение # 1186
    Red Winter Software
    Сейчас нет на сайте
    Quote (Duskly)
    pixeye, не помогло


    конечно, там ведь еще 8 ошибок. Но ты спросил конкретно про эту. Даже скрин сделал.

    Добавлено (04.12.2011, 02:24)
    ---------------------------------------------
    Quote (Duskly)
    pixeye, не помогло


    Там ошибки исключительно на твою невнимательность. Если ты не можешь их понять - тебе вообще ненужен этот скрипт и ненужен с#.
    -> SortTargetByDisrance();

    ->SortTargetByDistance();

    Найди 10 отличий называется. Ну включи репку. Вызов какой функции описан в первой строчке и какая функция действительно существовала в коде?

    мало примеров? хорошо.

    foreach (GameObject enemy in go) ;
    AddTarget (enemy.transform);

    Обрати внимание на красное выделение. Как он будет добавлять таргет если цикл обрубается.

    Короче, толсто;-)))


    ACTORS - мой фреймворк на Unity
    Until We Die - игра над которой работаю



    Сообщение отредактировал pixeye - Воскресенье, 04 Декабря 2011, 02:25
    RipDevДата: Воскресенье, 04 Декабря 2011, 13:00 | Сообщение # 1187
    гейм-дизайнер
    Сейчас нет на сайте
    Duskly, пользуйся средой, она чутли не прямо говорит в чем ошибка.

    Взгляни на сей изукрашенный образ, на тело, полное изъянов, составленное из частей, болезненное, исполненное многих мыслей, в которых нет ни определённости, ни постоянства.
    iXeroxДата: Воскресенье, 04 Декабря 2011, 15:24 | Сообщение # 1188
    частый гость
    Сейчас нет на сайте
    Сделал скрипт, который вывод текст в GUI Text:
    Code

    var itextGUI : GUIText;  
    var itext = "КВ1";

    function Start()
    {
             yield new WaitForSeconds (2);
             itext = "Москва"; //true
             itextGUI.text = "" + itext;
             ///
             yield new WaitForSeconds (3);
             itext = "Петербург"; //false
             itextGUI.text = "" + itext;
             ///
             yield new WaitForSeconds (3);
             itext = "Владивосток"; //true
             itextGUI.text = "" + itext;
    }


    Теперь суть вопроса:
    Запускаю в юнити, работает нормально, но когда запускаю на ай паде, то текст перестает определяться либо видны лишь "??????". Пробовал сохранять в кодировках UTF-8, UTF-16 и нескольких других, но это не помогло, что подскажите делать?
    Заранее спасибо.
    С меня +
    pixeyeДата: Воскресенье, 04 Декабря 2011, 15:40 | Сообщение # 1189
    Red Winter Software
    Сейчас нет на сайте
    Quote (iXerox)
    Теперь суть вопроса:
    Запускаю в юнити, работает нормально, но когда запускаю на ай паде, то текст перестает определяться либо видны лишь "??????". Пробовал сохранять в кодировках UTF-8, UTF-16 и нескольких других, но это не помогло, что подскажите делать?
    Заранее спасибо.


    попробуй все это оформить в function OnGUI(){ } а не в Start() { }


    ACTORS - мой фреймворк на Unity
    Until We Die - игра над которой работаю

    _LeVoID_Дата: Воскресенье, 04 Декабря 2011, 15:44 | Сообщение # 1190
    VoID
    Сейчас нет на сайте
    Народ, можете посоветовать небольшой курс по C#, чтобы освоить основы для программирования на С# в Unity3d?

    QLines v1.3
    Forest Owl


    Сообщение отредактировал _LeVoID_ - Воскресенье, 04 Декабря 2011, 15:47
    noTformaTДата: Воскресенье, 04 Декабря 2011, 16:13 | Сообщение # 1191
    Ukrainian independent game developer
    Сейчас нет на сайте
    Quote (iXerox)
    Запускаю в юнити, работает нормально, но когда запускаю на ай паде, то текст перестает определяться либо видны лишь "??????". Пробовал сохранять в кодировках UTF-8, UTF-16 и нескольких других, но это не помогло, что подскажите делать?
    Заранее спасибо.

    мммм, русский текст + юнити3д + айос - всегда такая проблема... в песочнице часто пишут об этом... Там какой-то прикол в том что юнити берет стандартный айосовский шрифт, в котором нет кириллицы.... Не помню как именно, но в юнити3д надо принудительно засунуть шрифт с кириллицей... И еще есть понятие Dynamic fonts... И еще есть понятие кодировка листинга кода, вроде бы должно быть ЮТФ-16 ЛЕ.

    а вот тут как бы было решение подобной проблемы...


    @noTformaT
    RipDevДата: Воскресенье, 04 Декабря 2011, 16:41 | Сообщение # 1192
    гейм-дизайнер
    Сейчас нет на сайте
    _LeVoID_, да любая книга по C#, например:
    Фленов М. - Библия С#. 2-е издание - 2011
    Стефан Рэнди Дэвис - C# для чайников 2005 на русском языке[2005, PDF,RUS]
    Павловская - C#. Программирование на языке высокого уровня [2007]


    Взгляни на сей изукрашенный образ, на тело, полное изъянов, составленное из частей, болезненное, исполненное многих мыслей, в которых нет ни определённости, ни постоянства.
    IgromanДата: Воскресенье, 04 Декабря 2011, 17:15 | Сообщение # 1193
    Green Magicka
    Сейчас нет на сайте
    RipDev, мне кажется там слишком много текста, там вовсе не нужно знание всего языка, лишь основ. _LeVoID_, Достаточно пару видеоуроков или сюда, сюда и сюда. Считаю что этого вполне достаточно. Любой вопрос по реализации определённой функции можно найти на Unity Answers. Основы в Scripting reference. А форум по Юнити можно уже в последнюю очередь смотреть...Основы я смотрел на Ogasoda, буквально пару уроков, для того чтобы понять самые основы, теперь постепенно заглядываю в Scripting reference - очень удобно) Единственный минус бывает только в том, что на Unity Answers в основном предлагают решения на JS. На незнание английского не жаловаться. Также есть вариант как в помощь - Unity wiki. Здесь можно поискать готовые скрипты, а также шейдеры, которые очень пригодятся и сэкономят много времени + всё это бесплатно.


    This is MAGICKA!
    RacotДата: Воскресенье, 04 Декабря 2011, 17:25 | Сообщение # 1194
    постоянный участник
    Сейчас нет на сайте
    Quote (Igroman)
    Единственный минус бывает только в том, что на Unity Answers в основном предлагают решения на JS

    Тыц
    Добрым людям рад помочь.


    Специалист "во всем" - специалист "ни в чем"
    ------------------------------------
    Script Reference для Unity3D
    Помогу со скриптами for Unity3D
    IgromanДата: Воскресенье, 04 Декабря 2011, 17:28 | Сообщение # 1195
    Green Magicka
    Сейчас нет на сайте
    Racot, хм зачётно, давно слышал об этом, а код на выходе редактировать нужно, или полностью рабочий? Тестил, не?


    This is MAGICKA!
    noTformaTДата: Воскресенье, 04 Декабря 2011, 17:29 | Сообщение # 1196
    Ukrainian independent game developer
    Сейчас нет на сайте
    Quote (Igroman)
    полностью рабочий

    ну, это работа m2h, я покаместь не видел что-бы они что-то хреновое сделали...


    @noTformaT
    IgromanДата: Воскресенье, 04 Декабря 2011, 17:32 | Сообщение # 1197
    Green Magicka
    Сейчас нет на сайте
    // Do test the code! You usually need to change a few small bits.
    smile

    Добавлено (04.12.2011, 17:32)
    ---------------------------------------------
    Но всё равно зачёт, очень поможет в дальнейшем:) Racot, +1



    This is MAGICKA!
    RacotДата: Воскресенье, 04 Декабря 2011, 17:32 | Сообщение # 1198
    постоянный участник
    Сейчас нет на сайте
    Quote (Igroman)
    Racot, хм зачётно, давно слышал об этом, а код на выходе редактировать нужно, или полностью рабочий? Тестил, не?


    Сори, не тестил, ибо по принципу на шарпе работаю.
    Но эту полезность записать нужно было 100% prof


    Специалист "во всем" - специалист "ни в чем"
    ------------------------------------
    Script Reference для Unity3D
    Помогу со скриптами for Unity3D
    IgromanДата: Воскресенье, 04 Декабря 2011, 17:34 | Сообщение # 1199
    Green Magicka
    Сейчас нет на сайте
    Quote (Racot)
    Сори, не тестил, ибо по принципу на шарпе работаю.

    да я тоже на шарпе, но просто иногда когда нужно что-то реализовать и не совсем понимаю что надо использовать, сразу иду на Answers. Теперь будет намного проще smile Ещё раз спасибо)



    This is MAGICKA!
    RacotДата: Воскресенье, 04 Декабря 2011, 17:35 | Сообщение # 1200
    постоянный участник
    Сейчас нет на сайте
    Quote (Igroman)
    Ещё раз спасибо)


    Quote (Racot)
    Добрым людям рад помочь


    UPD
    Но сильно не увлекайтесь smile


    Специалист "во всем" - специалист "ни в чем"
    ------------------------------------
    Script Reference для Unity3D
    Помогу со скриптами for Unity3D


    Сообщение отредактировал Racot - Воскресенье, 04 Декабря 2011, 17:36
    Поиск:

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