Вторник, 26 Ноября 2024, 06:20

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

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

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

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

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • berilДата: Вторник, 01 Сентября 2015, 10:40 | Сообщение # 7321
    Я не ленивый, я — энергосберегающий
    Сейчас нет на сайте
    В мануале все подробно расписано
    Так же это обязательно к прочтению




    Накодил? Убери за собой!
    Инвентарь в Unity(UI)
    Инвентарь в Unity(GUI)
    seamanДата: Вторник, 01 Сентября 2015, 12:26 | Сообщение # 7322
    старожил
    Сейчас нет на сайте
    Цитата
    Но это что - смещение от текущей позиции? или абсолютные координаты от точки отсчета?

    Чему далее ты присваиваешь этот вектор? Скорости ригидбоди (rigidbody.velocity = movement)! Так что это? Координаты, смещение? В каком пространстве? В пространстве скорости? А если бы ты управлял ригидбоди с помощью AddForce? Что тогда? Это - сила, или импульс или ускорение, или изменение скорости?

    Вектор имеет направление и длину. ВСЕ!
    Как ты интерпретируешь эти данные - твое дело.
    UnibahterДата: Вторник, 01 Сентября 2015, 19:36 | Сообщение # 7323
    был не раз
    Сейчас нет на сайте
    Правильно ли я понимаю, что все скрипты с [SyncVar] и унаследованные от NetworkBehaviour должны быть на C#?
    seamanДата: Вторник, 01 Сентября 2015, 20:23 | Сообщение # 7324
    старожил
    Сейчас нет на сайте
    Я, конечно не работал с SyncVar. Но не вижу причин, почему бы на JS не писать эти скрипты.
    Код
    @SyncVar
    var health : int = 100;
    @SyncVar
    var energy : float = 100;

    PS: надеюсь не соврал в синтаксисе...
    UnibahterДата: Вторник, 01 Сентября 2015, 20:25 | Сообщение # 7325
    был не раз
    Сейчас нет на сайте
    Спасибо

    Сообщение отредактировал Unibahter - Вторник, 01 Сентября 2015, 21:37
    STRATEG766Дата: Вторник, 01 Сентября 2015, 22:39 | Сообщение # 7326
    частый гость
    Сейчас нет на сайте
    Сделал управление таким образом
    int count = Input.touchCount;
    for (int i = 0; i < count; i++)
    {
    Touch touch = Input.GetTouch(i);
    if (toucha.HitTest(touch.position))
    transform.position -= Vector3.right * 10 * Time.deltaTime;

    }

    int count1 = Input.touchCount;
    for (int i = 0; i < count1; i++)
    {
    Touch touch1 = Input.GetTouch(i);
    if (toucha1.HitTest(touch1.position))
    {
    transform.position -= Vector3.left * 10 * Time.deltaTime;
    }
    }

    Как сделать по вертикали. Добавил такой же код в этом скрипте и менял Vector3.left на Vector3.up , по вертикали не перемещается.

    Добавлено (01 сентября 2015, 22:39)
    ---------------------------------------------
    Все, разобрался

    Сообщение отредактировал STRATEG766 - Вторник, 01 Сентября 2015, 21:58
    BoДата: Среда, 02 Сентября 2015, 23:45 | Сообщение # 7327
    почетный гость
    Сейчас нет на сайте
    Есть ли какой-либо ассетс или что-то другое для Unity, для упрощения синтаксиса скриптового языка (в плане читабельности и лаконичности)?
    Ну как к примеру CoffeeScript для JavaScript.
    berilДата: Четверг, 03 Сентября 2015, 00:10 | Сообщение # 7328
    Я не ленивый, я — энергосберегающий
    Сейчас нет на сайте
    Цитата Bo ()
    Есть ли какой-либо ассетс или что-то другое для Unity, для упрощения синтаксиса скриптового языка (в плане читабельности и лаконичности)?
    Ну как к примеру CoffeeScript для JavaScript.

    Да есть Entity System
    Еще Lua можно прикрутить....




    Накодил? Убери за собой!
    Инвентарь в Unity(UI)
    Инвентарь в Unity(GUI)
    BoДата: Четверг, 03 Сентября 2015, 00:22 | Сообщение # 7329
    почетный гость
    Сейчас нет на сайте
    Цитата beril ()
    Да есть Entity System
    Еще Lua можно прикрутить....

    Спасибо, посмотрел. Я немного не это имел в виду. К примеру есть код:
    Код
    if (Input.GetKeyDown(KeyCode.X ))   
    {
    сделать что-то
    }

    Языки-надстройки "упрощающие" синтаксис позволяют убрать избыточные элементы. Чтобы это выглядело типа:

    Код
    if (GetKeyDown("X"))   
    {
    сделать что-то
    }

    Я вот что-то такое хочу найти. Плюс длинные строчки кода типа
    Код
    transform.position = Vector3.MoveTowards(transform.position, new Vector3(worldPos.x, worldPos.y, worldPos.z), speed);

    мне сложней воспринимать. Наверняка есть возможность как то сократить (например если position.x всегда используется как часть transform.position.x, то зачем указывать "верхнюю" часть, т.е. transform).


    Сообщение отредактировал Bo - Четверг, 03 Сентября 2015, 00:25
    berilДата: Четверг, 03 Сентября 2015, 00:42 | Сообщение # 7330
    Я не ленивый, я — энергосберегающий
    Сейчас нет на сайте
    В таком случае тебе Lua нужно. Это можно глянуть ссылка и подобные ему.
    Или бесплатный плагин UniLua
    На хабре есть статья, как это прикрутить все к unity




    Накодил? Убери за собой!
    Инвентарь в Unity(UI)
    Инвентарь в Unity(GUI)
    BoДата: Четверг, 03 Сентября 2015, 00:50 | Сообщение # 7331
    почетный гость
    Сейчас нет на сайте
    Цитата beril ()
    На хабре есть статья, как это прикрутить все к unity

    Спасибо, хотя на первый взгляд для меня выглядит сложновато (прикручивание).
    Просто получается что у Юнити аж 3 скриптовых языка, а все равно приходится изобретать велосипед для удобства.
    А может есть какой-то способ объявлять в начале файла скрипта подобные сокращения?
    Ну как в обычном C# вне Unity при обращении к другим компонентам, чтобы полный путь к ним не писать каждый раз
    pixeyeДата: Четверг, 03 Сентября 2015, 07:39 | Сообщение # 7332
    Red Winter Software
    Сейчас нет на сайте
    Цитата Bo ()
    А может есть какой-то способ объявлять в начале файла скрипта подобные сокращения?
    Ну как в обычном C# вне Unity при обращении к другим компонентам, чтобы полный путь к ним не писать каждый раз


    Так же как в обычном C#

    Namespace / using

    Назвать
    Цитата Bo ()
    (например если position.x всегда используется как часть transform.position.x, то зачем указывать "верхнюю" часть, т.е. transform).


    Потому что у тебя в скрипте может быть свой position - путанница.


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

    BoДата: Четверг, 03 Сентября 2015, 16:39 | Сообщение # 7333
    почетный гость
    Сейчас нет на сайте
    Цитата pixeye ()
    Namespace / using

    Цитата pixeye ()
    Потому что у тебя в скрипте может быть свой position - путанница.

    Будет ли использование Namespace работать в случае с position?
    Получается, position не является ключевым словом?
    Если position не является таковым, могу ли я (как во многих языках допускается) задать сокращение вида
    <какНибудь> position.X = posX?

    Я не каверзую, просто хочется чтобы было удобно и написание кода не вызывало дополнительного отторжения.
    seamanДата: Четверг, 03 Сентября 2015, 16:55 | Сообщение # 7334
    старожил
    Сейчас нет на сайте
    Еще раз для тех кто не понял - using
    https://msdn.microsoft.com/ru-ru/library/sf0df423.aspx
    STRATEG766Дата: Пятница, 04 Сентября 2015, 00:38 | Сообщение # 7335
    частый гость
    Сейчас нет на сайте
    Создаю объекты таким образом
    bomba = GameObject.FindWithTag("bombo");
    if (time >= 10)
    {

    for (int i = 0; i < 1; i += 1)
    {


    GameObject bombObject = (GameObject)Instantiate(bomba);

    bombObject.transform.position = new Vector2(Random.Range(-10f, 10f), 0);

    }


    }
    Как сделать чтобы объект появился раз в 3 секунду, а то у меня они сразу слишком много появляются
    NEBRДата: Пятница, 04 Сентября 2015, 02:01 | Сообщение # 7336
    почти ветеран
    Сейчас нет на сайте
    STRATEG766, Сделай счетчик в 3 секунды, в Update уменьшай его на Time.deltaTime. Если меньше нуля - создавай бомбу и снова присваивай счетчику значение 3. посмотри уроки по созданию таймера

    King Size #Gamiron12
    STRATEG766Дата: Суббота, 05 Сентября 2015, 13:47 | Сообщение # 7337
    частый гость
    Сейчас нет на сайте
    NEBR, Понял. Спасибо большое!

    Добавлено (05 сентября 2015, 13:47)
    ---------------------------------------------
    Сделал вот такой счетчик
    Lift_Timer += 1f;
    if (Lift_Timer >= 150)
    {
    GameObject instance = new GameObject();

    Instantiate(Lift_Obj);
    transform.position = new Vector3(Random.Range(30, -50), 0);

    Lift_Timer = 0;
    }
    В Иерархи появляются объекты "new Gameobject" и "Obj_Lift", при столкновении объекты "Obj_Lift(Clone)" удаляются а "new GameObject" остаются. Как сделать чтобы они тоже удалились? А то игра начинает зависать

    NEBRДата: Суббота, 05 Сентября 2015, 14:49 | Сообщение # 7338
    почти ветеран
    Сейчас нет на сайте
    Цитата STRATEG766 ()
    Lift_Timer += 1f;
    if (Lift_Timer >= 150)
    {
    GameObject instance = new GameObject();

    Instantiate(Lift_Obj);
    transform.position = new Vector3(Random.Range(30, -50), 0);

    Lift_Timer = 0;
    }


    Не очень хороший код... Опиши детальнее, что именно тебе нужно, сейчас поправим.
    Цитата STRATEG766 ()
    при столкновении объекты "Obj_Lift(Clone)" удаляются а "new GameObject" остаются. Как сделать чтобы они тоже удалились?

    Столкновение OnCollisionEnter
    Удаление Destroy


    King Size #Gamiron12
    STRATEG766Дата: Суббота, 05 Сентября 2015, 19:35 | Сообщение # 7339
    частый гость
    Сейчас нет на сайте
    Цитата NEBR ()
    Опиши детальнее, что именно тебе нужно, сейчас поправим.

    Блин уже 2 дня не могу составить код создание объектов.))

    Щас сделал вот так

    Код
    IEnumerator cor()
    {

    yield return new WaitForSeconds(2f);

    GameObject obj = Instantiate(Lift_Obj, new Vector3(Random.Range(20, -20), 0, 0), Quaternion.identity) as GameObject;

    Repeat();

    }
    void Start()
    {

    StartCoroutine(cor());

    }
    void Repeat() {

    StartCoroutine(cor());
    }
    }


    Все спасибо! Щас все как мне надо.

    Добавлено (05 сентября 2015, 19:35)
    --------------------------------------------


    Сообщение отредактировал STRATEG766 - Суббота, 05 Сентября 2015, 23:04
    NEBRДата: Вторник, 08 Сентября 2015, 19:12 | Сообщение # 7340
    почти ветеран
    Сейчас нет на сайте
    У меня такая мистическая фигня происходит, может кто нибудь сталкивался с подобным.

    Делаю билд под андроид (admob, UnityAds). С галочкой development build и активированным тестовым режимом в UnityAds все работает замечательно. Выключаю тестовый режим, снимаю галочку development build, делаю BuildAndRun, игра запускается на девайсе. Все супер, отлично работает.

    Если же нажимать просто "Build", и установить apk файл вручную - пропадает звук и не работает реклама (UnityAds). Если взять apk, который сгенерировался в результате BuildAndRun (который отлично отрабатывается на девайсе) и установить его вручную - опять же пропадает звук и реклама...
    Пробовал на нескольких устройствах.


    King Size #Gamiron12
    Поиск:

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