Суббота, 04 Мая 2024, 07:15

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

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

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

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

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • БозингарДата: Пятница, 07 Августа 2015, 16:25 | Сообщение # 7261
    почетный гость
    Сейчас нет на сайте
    Объект движется методом Rigidbody2d.MovePosition, но rigidbody2d.velocity.magnitude почему-то показывает, что скорость объекта всегда нулевая. Почему?

    Код
    if (rb2d.velocity.magnitude == 0) {
        Debug.Log ("Speed = 0");


    Speed всегда 0.


    #Хийвэл бүү ай, айвал бүү хий.
    ArtanielДата: Пятница, 07 Августа 2015, 16:59 | Сообщение # 7262
    частый гость
    Сейчас нет на сайте
    Бозингар, в основном потому что такой способ движения. Rigidbody2d.MovePosition для физики это грубая телепортация без скорости.
    Фактически ты переустанавливаешь объект в новые позиции, а не задаешь ему скорость. Для Rigidbody скороость это причина движения, а не результат, т.е. если она есть то координаты будут сами меняться, но переустановка в новую позицию не создает скорость.
    Вобщем, если нужен спидометр - его придется написать самому. Как разность векторов позиции прошлого и этого кадра делить на Time.deltaTime, например.
    Есть подозрение что Rigidbody там лишний, присваивать координаты можно и без физики, а так ты этим самым присваиванием будешь затирать любые попытки физ движка сдвинуть ГО куда он считает правильным.

    Была у меня попытка реализоать веревку на джоинтах, в качестве одной из проблем - неадекватное поведение когда веревка слишком растянута. Боролся как раз с помощью подавления Rigidbody физики тупым присваиванием transform.position так чтобы все частицы находились на одной линии, а силы рассчитывались вручную и прилагались только к концам веревки. Но если веревка снова сокращалась до длины меньше критической - интерполировал частицам веревки координаты и скорости и отправлял в свободное плавание на основе Rigidbody физики.

    Мораль: или Rigidbody физика или покадровое присваивание координат. Поотдельности работают прекрасно, одновременно - второе подавит все проявления первого.
    ivan2009Дата: Пятница, 07 Августа 2015, 20:16 | Сообщение # 7263
    частый гость
    Сейчас нет на сайте
    Здравствуйте. Очень хотелось бы узнать про взаимодействие с UI елементами через свои скрипты, интересует как обращаться в своих скриптах к конкретному объекту UI.
    К примеру у меня есть skrollbar у которого есть переменные Size, Value.... Подскажите может у кого есть туториалы(на русском) на данную тему или какой то полезный материал.
    Буду благодарен.
    ArtanielДата: Суббота, 08 Августа 2015, 13:25 | Сообщение # 7264
    частый гость
    Сейчас нет на сайте
    ivan2009, главное подключить модуль UnityEngine.UI . После этого появляются все нужные классы. Например Scrollbar.value - значение положения скроллбара от 0 до 1.

    http://docs.unity3d.com/ScriptReference/UI.Slider-value.html
    вот тут есть хороший кусок кода с примером использования.

    Официальная документация тут будет полезнее самодельных туториалов, хотя бы потому что полная.


    Сообщение отредактировал Artaniel - Суббота, 08 Августа 2015, 13:26
    Dj_FroZTBiteДата: Суббота, 08 Августа 2015, 15:39 | Сообщение # 7265
    Серебряная душа
    Сейчас нет на сайте
    Что я делаю для разработки игры?
    Собираю простейшую концепцию - строю диздок такой игры, какую пока что попроще. И что дальше?
    Люди же делают и программирование, и визуализацию в одиночку. Что я должен делать? Учить C# и моделировать коробочки одновременно? Или как? Пожалуйста, опишите с чего начать. Очень хочу начать делать игры, даже пусть то будут
    простейшие змейки, три в ряд, платформеры, марио, какие то инди хорроры с кривой графой и выживалки с багами налево направо, умоляю, скажите с чего мне начать. Ужасно завидую участникам gamiron 10.


    Рук нет, есть только кривые культяпки.
    allodsДата: Суббота, 08 Августа 2015, 16:05 | Сообщение # 7266
    почти ветеран
    Сейчас нет на сайте
    Цитата Dj_FroZTBite ()
    Учить C# и моделировать коробочки одновременно

    да именно так
    Dj_FroZTBiteДата: Воскресенье, 09 Августа 2015, 20:04 | Сообщение # 7267
    Серебряная душа
    Сейчас нет на сайте
    Скажите пожалуйста. Вот я хочу использовать скрипт LanguageBaseCS, лежащий на обьекте LanguageBase, а это скрипт GuiTextCS. Как мне с него обратиться к тому скрипту и использовать его переменные string (публичные)
    Код
        void OnGUI () {
       languageBase = Find("LanguageBase").GetComponent("LanguageBaseCS") as LanguageBaseCS;
       GUI.Box (new Rect(Screen.width/2-250,Screen.height/2-150,500,340), (languageBase.menu), grandlabelstyle);
       if (GUI.Button (new Rect(Screen.width/2-150,Screen.height/2-50,300,40), "New Game", menubutton)) {
        //Application.LoadLevel(1);
        Debug.Log ("Pressed ''New Game'', no level to load");
       }


    Рук нет, есть только кривые культяпки.
    БозингарДата: Понедельник, 10 Августа 2015, 10:27 | Сообщение # 7268
    почетный гость
    Сейчас нет на сайте
    Цитата Dj_FroZTBite ()
    Как мне с него обратиться к тому скрипту

    Я, конечно, далеко не мастер C#, но разве метод "public LanguageBaseCS languageBase" в данном случае не подойдет?


    #Хийвэл бүү ай, айвал бүү хий.

    Сообщение отредактировал Бозингар - Понедельник, 10 Августа 2015, 11:16
    zisXДата: Вторник, 11 Августа 2015, 10:14 | Сообщение # 7269
    Neto Zis
    Сейчас нет на сайте
    У ui кнопки есть функция изменения зоны нажатия на кнопку?

    allodsДата: Вторник, 11 Августа 2015, 16:40 | Сообщение # 7270
    почти ветеран
    Сейчас нет на сайте
    Как открыть юнити 4,6 да или любую юнити ниже 5,0 не открывая сам проэкт?
    Дело в том что раньше этот проэкт был 4,6, перевел его в 5,0 . Нужно открыть юнити 4,6 и начать новый проэкт но эта предлагает downgrade мой проэкт wacko
    AlfeДата: Вторник, 11 Августа 2015, 16:52 | Сообщение # 7271
    старожил
    Сейчас нет на сайте
    Dj_FroZTBite, я те вот что скажу , я участник Гамирона и как ты думаешь , сколь далеко я на деле заходил в Юнити ? Правильно , я ток и делал , что создавал Тиррэйны и текстурировал их ) .

    Группа нашей команды. Там есть интересная рубрика... иногда игры выходят

    Моя первая игpa - Crazy Penguin
    MANMANAДата: Вторник, 11 Августа 2015, 17:23 | Сообщение # 7272
    почти ветеран
    Сейчас нет на сайте
    Цитата Alfe ()
    Нужно открыть юнити 4,6 и начать новый проэкт но эта тварь предлагает downgrade мой проэкт

    Удерживая Alt запускай Юньку 4.6 через иконку/вкладку в меню Пуск. Откроется диалоговое окно, в котором ты сможешь создать новый проект. Помни, товарищ! Удерживай Alt, пока не откроется диалог выбора проекта! Ну так, на всякий случай :).
    Используя эту нехитрую рекомендацию, ты сможешь открывать несколько проектов одновременно/параллельно.


    http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
    VKонтакте 3Dbuffer

    Последнее:

    Новый раздел "Текстуры"

    Как запатентовать, защитить техническое решение, игру, идею


    Сообщение отредактировал MANMANA - Вторник, 11 Августа 2015, 17:24
    ivan2009Дата: Среда, 12 Августа 2015, 18:26 | Сообщение # 7273
    частый гость
    Сейчас нет на сайте
    Здравствуйте.Есть пару вопросов.
    Ситуация такая персонаж вбегает в определенную зону, когда он в зоне то становится активным UI элемент (текст).На текст хочу сделать коррутину что бы менялась прозрачность текста.И вот тут бока...
    Скрипты ниже

    активация UI элемента


    попытка сделать коррутину на мерцание надписи


    в общем при динамически создаваемом рендерере когда персонаж в зоне активации UI элемента, юнити ругается мол рендерера то нету у обьекта...
    сам же я не знаю какой рендерер надо лепить на UI элемент, там есть canvasrenderer но у него не доступна rend.material.color;
    И ещё такая вот штука, по умолчанию UI элемент не активен и как бы я не писал поиск его(в первом скрипте), искал по имени,тэгу, через родителя пробовал... всегда при входе в зону активации юнити ругалось что ссылка на обьект пустая, делаю UI элемент активным по умолчанию...вся работает нормально....решилось это только после того как я ручками перетащил элемент в графу GameObject text.
    Мне вот интересно почему так.
    Буду очень признателен за помощь
    berilДата: Среда, 12 Августа 2015, 18:49 | Сообщение # 7274
    Я не ленивый, я — энергосберегающий
    Сейчас нет на сайте
    Цитата ivan2009 ()
    Здравствуйте.Есть пару вопросов.
    Ситуация такая персонаж вбегает в определенную зону, когда он в зоне то становится активным UI элемент (текст).На текст хочу сделать коррутину что бы менялась прозрачность текста.И вот тут бока...
    Скрипты ниже

    активация UI элемента
    Код
    using UnityEngine;
    using System.Collections;
    using UnityEngine.UI;

    public class TowerSpawn : MonoBehaviour {
    private bool trigger;
    public GameObject text;

    // Use this for initialization
    void Start () {

    }

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

    if (trigger) {
    text.SetActive(true);
    }
    if (!trigger) {
    text.SetActive(false);
    }
    }
    public void OnTriggerEnter(Collider myCollider){
    if (myCollider.CompareTag ("Player")) {
    trigger = true;
    }
    }
    public void OnTriggerExit(Collider myCollider){
    if (myCollider.CompareTag ("Player")) {
    trigger = false;
    }
    }

    }

    попытка сделать коррутину на мерцание надписи
    Код
    using UnityEngine;
    using System.Collections;
    using UnityEngine.UI;

    public class TextFade : MonoBehaviour {
    Renderer rend;

    Color c;
    // Use this for initialization
    void Awake () {
    gameObject.AddComponent<Renderer> ();
    rend = gameObject.GetComponent<Renderer> ();

    }

    // Update is called once per frame
    void Update () {
    StartCoroutine ("Fade");

    }
    IEnumerator Fade(){
    for (float f = 1f; f>=0; f-=0.1f) {
    c = rend.material.color;
    c.a = f;
    yield return null;
    }
    }
    }

    в общем при динамически создаваемом рендерере когда персонаж в зоне активации UI элемента, юнити ругается мол рендерера то нету у обьекта...
    сам же я не знаю какой рендерер надо лепить на UI элемент, там есть canvasrenderer но у него не доступна rend.material.color;
    И ещё такая вот штука, по умолчанию UI элемент не активен и как бы я не писал поиск его(в первом скрипте), искал по имени,тэгу, через родителя пробовал... всегда при входе в зону активации юнити ругалось что ссылка на обьект пустая, делаю UI элемент активным по умолчанию...вся работает нормально....решилось это только после того как я ручками перетащил элемент в графу GameObject text.
    Мне вот интересно почему так.
    Буду очень признателен за помощь

    Глянь это




    Накодил? Убери за собой!
    Инвентарь в Unity(UI)
    Инвентарь в Unity(GUI)
    ivan2009Дата: Среда, 12 Августа 2015, 20:13 | Сообщение # 7275
    частый гость
    Сейчас нет на сайте
    Цитата beril ()
    Глянь это

    Полазил посмотрел....ток чего то не понял...там у него Notice наследуется от Text, что за текст...это он сам писал скрипт и наследовался от него или же это стандартный класс в библиотеках юнити.
    Сейчас попробую сделать коррутину такую же...
    Просто я брал коррутину с документации по движку....
    berilДата: Среда, 12 Августа 2015, 20:48 | Сообщение # 7276
    Я не ленивый, я — энергосберегающий
    Сейчас нет на сайте
    Цитата ivan2009 ()
    стандартный класс в библиотеках юнити.

    Именно так. Переменная color из класса Graphic, который находится в иерархии наследования где то между Object и Text




    Накодил? Убери за собой!
    Инвентарь в Unity(UI)
    Инвентарь в Unity(GUI)
    xrenomonsterДата: Четверг, 13 Августа 2015, 14:33 | Сообщение # 7277
    был не раз
    Сейчас нет на сайте
    Всем здравствуйте. Не так давно начал работать с Unity. До этого имел дело с клиент/сервер приложением, написанным на as3/php. Всё было предельно ясно... AS3 выступал в роли клиента, а php был сервером. Взаимодействие шло через JSON. Вся логика была на php, клиент только "рисовал" всё что требовалось игре. А как дела обстоят в Unity, если писать сервер на C#? Кто есть кто?

    Сообщение отредактировал xrenomonster - Четверг, 13 Августа 2015, 14:34
    Dj_FroZTBiteДата: Четверг, 13 Августа 2015, 14:41 | Сообщение # 7278
    Серебряная душа
    Сейчас нет на сайте
    xrenomonster, C# отлично подходит для написания серверов. Думаю, в интернете предостаточно документации на эту тему: Вот нашел статью на Хабре

    Рук нет, есть только кривые культяпки.
    xrenomonsterДата: Четверг, 13 Августа 2015, 14:48 | Сообщение # 7279
    был не раз
    Сейчас нет на сайте
    Dj_FroZTBite, меня интересует именно вопрос разделения на клиент/сервер. Во всех обучалках, что я сейчас нашёл код клиента и сервера пишется в C# и прикрепляется к gameObject в Unity. Как в данном случае определить где клиент, а где сервер? Или тут строгого деления не существует?

    Сообщение отредактировал xrenomonster - Четверг, 13 Августа 2015, 14:49
    ivan2009Дата: Пятница, 14 Августа 2015, 19:58 | Сообщение # 7280
    частый гость
    Сейчас нет на сайте
    Здравствуйте.Тут такое дело...Есть текст который я сделал дочерним элементом персонажа, и висит он над его головой, только вот он вертится вместе с персонажем,мне надо что бы текст перемещался вместе с ним но не вертелся...
    скрипт ниже

    Буду признателен за подсказки.
    Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Вопрос-[ответ] по Unity (Задаём свои вопросы)
    Поиск:

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