Воскресенье, 29 Сентября 2024, 14:14

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

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

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

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

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • lentinantДата: Воскресенье, 16 Марта 2014, 01:25 | Сообщение # 5761
    ленивый программист
    Сейчас нет на сайте
    Voresh, я могу ошибаться, но, вроде бы, если вы не назначили значение массиву tile вручную в инспекторе, то надо его инстансировать в коде.
    Код
    Tile[] tile= new Tile[5];

    Добавлено (16.03.2014, 00:58)
    ---------------------------------------------
    Да, у меня внезапно возник такой вопрос - а какое значение transform.parent у объекта, который выше всех в иерархии? null? Или есть какой-то абстрактный объект, типа root с флэша?

    Добавлено (16.03.2014, 01:25)
    ---------------------------------------------
    Все, ясно, null. Жаль, получается, надо еще одну заглушку писать.


    Когда-то тут будут ссылки на крутые проекты. Или нет.

    Сообщение отредактировал lentinant - Воскресенье, 16 Марта 2014, 00:50
    AntonioADДата: Воскресенье, 16 Марта 2014, 17:58 | Сообщение # 5762
    был не раз
    Сейчас нет на сайте
    Есть ли какой то Glow, а лучше Bloom для Unity indie.
    Пришлось переехать с BGE на Unity free (free - т.к. будущая игра коммерческая).
    Indie Glow не работает.
    allodsДата: Воскресенье, 16 Марта 2014, 21:05 | Сообщение # 5763
    почти ветеран
    Сейчас нет на сайте
    У меня есть один вопросик, что и куда нужно кидать чтоб использовать функции из всяких SDK(в моем случае samsung SDK)
    Нужео сделать apk с фишками для samsung

    Ответ

    jar файл в Plugins/android


    Сообщение отредактировал allods - Воскресенье, 16 Марта 2014, 21:11
    zaicev9797Дата: Воскресенье, 16 Марта 2014, 21:26 | Сообщение # 5764
    AbRaKaDaBrA
    Сейчас нет на сайте
    Цитата allods ()
    Есть ли какой то Glow, а лучше Bloom для Unity indie.
    Пришлось переехать с BGE на Unity free (free - т.к. будущая игра коммерческая).
    Indie Glow не работает.


    во фри версии юнити полноэкранные шейдеры не доступны


    проект Mysterious Space. The losted moment
    lentinantДата: Понедельник, 17 Марта 2014, 18:20 | Сообщение # 5765
    ленивый программист
    Сейчас нет на сайте
    В общем, есть код перетягивания камеры мышкой, где, в GetMouseButtonDown (или просто GetButtonDown, не суть важно), запоминаем координату мышки и положение экрана, а в GetMouseButton отслеживаем изменение первого и соответственным образом меняем второе. Но. При этом, мне нужно будет организовывать обычный клик мышкой по GetMouseButtonDown, с определенным функционалом.

    Так вот, как нормально организовать различие между щелчком мыши, и зажатой кнопкой? Пока у меня два варианта - либо делать некое время, начиная с которого щелчок считается как начало передвижения камеры, а если кнопку отпустили раньше, то это считается обычным "функциональным" щелчком, либо, прикрепить к камере объект с коллайдером, сделать так, чтобы он был под другими объектами, и реализовать передвижение с помощью функций OnMouse; по задумке, если мы щелкнем на какой-то объект, то он перекроет коллайдер, и в том не вызовется соответственная функция, поправьте меня, если я не прав.

    Добавлено (17.03.2014, 18:20)
    ---------------------------------------------
    Конечно, можно реализовать взаимодействие с объектами по OnMouseUp, однако, получится, можно будет зажать кнопку, потягать камеру, после чего навести курсор на объект, отпустить кнопку, и действие выполнится.


    Когда-то тут будут ссылки на крутые проекты. Или нет.
    allodsДата: Вторник, 18 Марта 2014, 01:17 | Сообщение # 5766
    почти ветеран
    Сейчас нет на сайте
    Какой самый быстрый в плане производительности метод для послания переменных из одного объекта другому в js?
    GetComponent очень медленный


    Сообщение отредактировал allods - Вторник, 18 Марта 2014, 01:17
    berilДата: Вторник, 18 Марта 2014, 01:24 | Сообщение # 5767
    Я не ленивый, я — энергосберегающий
    Сейчас нет на сайте
    почему нельзя кешировать GetComponent ?



    Накодил? Убери за собой!
    Инвентарь в Unity(UI)
    Инвентарь в Unity(GUI)
    allodsДата: Вторник, 18 Марта 2014, 02:26 | Сообщение # 5768
    почти ветеран
    Сейчас нет на сайте
    Цитата beril ()
    кешировать GetComponent ?

    А можно подробней?
    lentinantДата: Вторник, 18 Марта 2014, 13:48 | Сообщение # 5769
    ленивый программист
    Сейчас нет на сайте
    Цитата allods ()
    А можно подробней?

    Вместо того, чтобы брать GetComponent каждый раз, загоняешь его в начале игры в переменную, и обращаешься уже к переменной.

    Добавлено (18.03.2014, 13:48)
    ---------------------------------------------
    Возник такой вопрос - как лучше всего реализовать тактическую паузу (остановку геймплея, с целью раздачи команд и т.д.).

    Первая мысль была через TimeScale. Однако, это повлияет на выполнение Update, а это уже мешает реализации некоторых геймплейных фич (например, у меня отказывает зум камеры, который реализован через Update). Вторая мысль - переменная-заглушка, которая меняется по нажатии кнопки, и мешает выполнять соответственные функции. Но это очень кривой метод, так как требует внедрения в куче мест в коде, и может довольно криво отобразиться на игре (к примеру, игра остановится, а анимации продолжатся).

    В общем, нужны ваши мысли по этому поводу. Было бы неплохо узнать о каком-то аналоге TimeScale, существующим локально в каждом объекте (вдруг такой есть, как в UDK).


    Когда-то тут будут ссылки на крутые проекты. Или нет.
    Storm54Дата: Вторник, 18 Марта 2014, 19:41 | Сообщение # 5770
    постоянный участник
    Сейчас нет на сайте
    Мне в голову пришел такой способ: Создаем свой класс, который наследуем от MonoBehaviour.
    Пишем там пару виртуальных методов - аналоги Update() и FixedUpdate() (возможно и других методов, которые будут необходимы)
    В этом классе объявляем свою переменную pause и делаем ее статической.
    Теперь в методах Update() FixedUpdate() и т.д. (стандартные юнитековские) прописываем условие, если pause == false, то вызывать наши виртуальные методы.
    Теперь классы всех объектов, у которых нужно просчитывать логику(юниты и т.д.) наследуем от класса, который написали.
    Переопределяем все методы, которые описали и используем их вместо стандартных. Теперь они выполняются только тогда, когда игра не стоит на паузе.
    Идеальный вариант, если хочется красивого кода.
    Насчет анимации я пока не придумал smile
    lentinantДата: Вторник, 18 Марта 2014, 21:34 | Сообщение # 5771
    ленивый программист
    Сейчас нет на сайте
    Storm54, очень даже неплохая идея, спасибо.

    Добавлено (18.03.2014, 21:34)
    ---------------------------------------------
    Главное, что текущий код требует минимум изменений.


    Когда-то тут будут ссылки на крутые проекты. Или нет.
    AdomДата: Среда, 19 Марта 2014, 12:30 | Сообщение # 5772
    Печенька!
    Сейчас нет на сайте
    В общем такая проблема.
    Я сделал системку падения так-вот и она у меня действует так что если прыгнешь то будет коцать.
    Я хотел решить эту проблему путем обнуления....Но не получилось.
    Код
    using UnityEngine;
    using System.Collections;

    public class HealthBox : MonoBehaviour {
    public Transform Player;
    public float CurHealth;
    public float MaxHealth;
    public float CurEXP=0;
    public float MaxEXP=500;
    public int levl=1;
    public int Energy= 20;  
    public int WeaponDamage=10;
    public Texture2D Bar;
    public GUISkin Skin;
    public bool Levl_Up;
    public CharacterController Cc;
    public float Fall;
    public GameObject Blood;
    public float BloodTime;
    public AudioClip Hit;
       
    // Use this for initialization     
    void Start () {  
    }  
    // Update is called once per frame
    void Update () {
    if(!Cc.isGrounded){
    Fall+=Time.deltaTime*2;   
    return;   
    }
    if(Cc.isGrounded){  
    BloodTime+=Time.deltaTime*5;
    return;   
    }
    if(Cc.isGrounded&&Fall>=1.5f){
    CurHealth-=Fall;
    Fall=0;
    Blood.SetActive(true);
    audio.clip = Hit;
    audio.Play();
    }else{   
    if(BloodTime>=5.0f){    
    Blood.SetActive(false);  

    }
    }
    }
    void OnGUI(){
    GUI.skin = Skin;
    //HealthBar
    GUI.Label(new Rect(60,700,150,50),CurHealth+"/"+MaxHealth);
    GUI.Box(new Rect(60,700,50,20),"");
    //EXPBar
    GUI.Label(new Rect(60,725,150,50),CurEXP+"/"+MaxEXP);
    GUI.Box(new Rect(60,725,75,20),"");
    //Bar
    GUI.DrawTexture(new Rect(10,700,50,50),Bar);  
    if(CurEXP==MaxEXP){
    Levl_Up=!Levl_Up;    
    GUI.Label(new Rect(30,725,50,50),levl+"");     
    }  
    }
    public void LevlUp(){
    if(CurEXP==MaxEXP&&Levl_Up){  
    levl+=1;  
    MaxEXP+=2000;   
    }
    CurEXP+=500;  
    }
    }

    Вот код может вы поможете разобраться ?

    Добавлено (19.03.2014, 12:30)
    ---------------------------------------------
    Хотя... Все решил )

    lentinantДата: Среда, 19 Марта 2014, 13:25 | Сообщение # 5773
    ленивый программист
    Сейчас нет на сайте
    Adom, а почему нельзя было вместо собственной переменной использовать rigidbody.velocity.magnitude?

    Когда-то тут будут ссылки на крутые проекты. Или нет.
    AdomДата: Среда, 19 Марта 2014, 18:21 | Сообщение # 5774
    Печенька!
    Сейчас нет на сайте
    lentinant, Можно было но... Я с этой штукой еще не дружу )
    lentinantДата: Среда, 19 Марта 2014, 20:51 | Сообщение # 5775
    ленивый программист
    Сейчас нет на сайте
    Для подвижного окна достаточно добавить GUI.DragWindow() в конец функции окна? В каких случаях это может не работать?

    Когда-то тут будут ссылки на крутые проекты. Или нет.
    PoqXertДата: Четверг, 20 Марта 2014, 10:15 | Сообщение # 5776
    постоянный участник
    Сейчас нет на сайте
    Нужно ещё менять rect окна.
    т.е. надо писать rectWindow = GUI.Window(0, rectWindow, ........


    Расширения для Unity3D
    Блог программиста - PoqXert.ru
    lentinantДата: Четверг, 20 Марта 2014, 12:19 | Сообщение # 5777
    ленивый программист
    Сейчас нет на сайте
    PoqXert, делал, ноль толку.

    Добавлено (20.03.2014, 12:19)
    ---------------------------------------------
    Но уже неважно, теперь нет необходимости в передвижении окна. Пока что.


    Когда-то тут будут ссылки на крутые проекты. Или нет.

    Сообщение отредактировал lentinant - Четверг, 20 Марта 2014, 12:20
    AdomДата: Пятница, 21 Марта 2014, 21:43 | Сообщение # 5778
    Печенька!
    Сейчас нет на сайте
    Можете помочь ? Я добавил на кубик DragRigidbody но игрок не хочет его поднимать в чем дело ? Сам Rigidbody ставил

    Добавлено (21.03.2014, 21:43)
    ---------------------------------------------
    Ау... Что никто не встречал такую проблему?

    allodsДата: Суббота, 22 Марта 2014, 01:29 | Сообщение # 5779
    почти ветеран
    Сейчас нет на сайте
    Сделал лайт маппинг в проекте, теперь при запуске игра просто вылетает после значка unity
    Удалил лайт маппинг все ровно вылетает
    Что зв хрень? кто сталкивался с такой проблемой
    VoreshДата: Суббота, 22 Марта 2014, 13:38 | Сообщение # 5780
    частый гость
    Сейчас нет на сайте
    Делаю игру в 2D, подскажите, пожалуйста, как мне сдвинуть спрайт вправо(например) ровно на один пиксель?
    Поиск:

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