forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Общие вопросы (http://forum.boolean.name/forumdisplay.php?f=166)
-   -   Вопросы от новичка (http://forum.boolean.name/showthread.php?t=15809)

WISHMASTER35 03.05.2014 14:45

Ответ: Вопросы от новичка
 
pax,
1. Логично, но лучше бы он автоматически перезагружал.
2. Я привык, что в Java скобки не переносятся. Так код компактнее выглядит.
3. Да, работает. Что-то не заметил. Но помню, раньше в обычных проектах не работало.

pax, у тебя Script Execution Order нормально работает? У меня после паузы (изменения TimeScale) очередность вызова OnGUI нарушается.
И я так и не понял для чего указываются эти цифры и что такое default Time?

Я так понял, если число отрицательное, то события будут вызывается вообще перед всеми событиями в других скриптах, даже если этих скриптов нету в Execution Order списке ?

radiobutton 03.05.2014 19:35

Ответ: Вопросы от новичка
 
2. А у меня наоборот проблемы, со скобкой на той же строчке. =0

pax 03.05.2014 21:09

Ответ: Вопросы от новичка
 
Я вообще не использую Script Execution Order, это костыль для тех, кто не может организовать работу логики в проекте нормально я считаю.

WISHMASTER35 03.05.2014 22:13

Ответ: Вопросы от новичка
 
pax, у меня один скрипт рисует кнопки, а другой двигает камеру.
Если в первом скрипте нажата кнопка, то делаю Event.current.Use() и во втором скрипте двигать камерой уже нельзя.

pax 03.05.2014 23:16

Ответ: Вопросы от новичка
 
Зачем ты двигаешь камеру в OnGUI?

WISHMASTER35 04.05.2014 19:57

Ответ: Вопросы от новичка
 
pax, чтобы отсеять движения мышью над кнопками.

Перенес все в Update на свою голову.
Теперь получается, что в Update у меня происходит PickObject т.е. выбор объекта на карте.
Но когда объект выбран, над ним рисуется его GUI - две кнопки. И получается, что я жму на эти кнопки, а происходит PickObject и либо выбирается другой объект, либо так сказать Unselect. И те кнопки так и не срабатывают.
И Update и OnGUI у меня в одном скрипте.

pax 04.05.2014 23:27

Ответ: Вопросы от новичка
 
Так сделай проверку на попадание мыши в GUI. И пусть в Update проверяется этот флаг. Я у себя делал регистрацию Rect'ов элементов и если в этом кадре ни в один рект мышка не попала, то флаг false. Иначе true.

ANIK123 05.05.2014 00:34

Ответ: Вопросы от новичка
 
я что-то сломал
все частицы в эдиторе стали воспроизводятся в "ван шот", даже чистые, "свежесозданные"
в плеймоде же все гуд, loop работает

это глюк?
версия самая свежая, но крякнутая (хотел посмотреть что творится в профайлере и побаловаться с шейдерамы), но установил я ее еще неделю назад, а глюк появился сегодня
все что я перед этим делал необычного так это впервые подключал андроид-устройство через remote

UPD: удалил крякнутую и поставил фри-версию, глюк остался
тут вспомнил что я изменял fixed timestep на максимум ибо физика мне не нужна
не ожидая ничего хорошего я установил единицу и... ваншоты стали воспроизводится чаще О_О
выставил значения по умолчанию и получил нормальные системы частиц, которые воспроизводятся без прерываний
мне кажется это костыль, или так и должно быть?)

Левша09 27.05.2014 16:27

Ответ: Вопросы от новичка
 
Товарищи, помогите, пожалуйста, далекому от кода человеку.
Суть задачи: по нажатию клавиши загружать в сцену префаб, удаляя текущий. по нажатию другой клавиши тоже самое в обратном порядке.
Как мне уже подсказали нужно использовать массивы.
Но даже прочитав статьи и примеры, до меня никак не доходит как это правильно сделать.

dsd 28.05.2014 01:09

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от Левша09 (Сообщение 281604)
Товарищи, помогите, пожалуйста, далекому от кода человеку.
Суть задачи: по нажатию клавиши загружать в сцену префаб, удаляя текущий. по нажатию другой клавиши тоже самое в обратном порядке.
Как мне уже подсказали нужно использовать массивы.
Но даже прочитав статьи и примеры, до меня никак не доходит как это правильно сделать.

Код:

using UnityEngine;
using System.Collections;

public class SomeStrangeBehevior : MonoBehaviour {


        public GameObject timber;

        void Start () {
        }
       
        void Update () {
        }

        void OnMouseDown(){
                GameObject someGameObject = (GameObject) Instantiate(timber);
                Destroy (this.gameObject);
        } 

}

Что то наподобие этого наверно.


А как сделать объект прозрачным для OnMouseDown()?

pax 28.05.2014 01:11

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от dsd (Сообщение 281620)
А как сделать объект прозрачным для OnMouseDown()?

Возможно переместить его в слой Ignore Raycast

Левша09 28.05.2014 12:53

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от dsd (Сообщение 281620)
Что то наподобие этого наверно.

Что-то мне кажется что не то. Хотя работу скрипта я не понимаю.
Мне бы конечно лучше на пальцах объяснить.

Возможно в вопросе упустил важную деталь, нужно загружать/удалять определенные префабы в определенном порядке.

Опишу проще: выбор автомобилей в гараже (но не храня в памяти все модели сразу).

pax 28.05.2014 14:04

Ответ: Вопросы от новичка
 
Попробуй это:
PHP код:

using UnityEngine;
using System.Collections;

public class 
SomeStrangeBehevior MonoBehaviour
{
    
// текущий объект
    
private GameObject current;
    
// список ресурсов для показа
    
public string[] resources;
    
// тот который показывается сразу
    
public int currentIndex 0;

    
// показываем дефолтный
    
private void Start()
    {
        
Display();
    }

    
    private 
void Display()
    {
        if (
current != null// при показе уничтожаем существующий
        
{
            
Destroy(current);
        }
        
current = (GameObjectInstantiate(Resources.Load(resources[currentIndex]));
    }

    
// при клике меняем
    
void OnMouseDown()
    {
        
currentIndex++;
        if (
currentIndex >= resources.LengthcurrentIndex 0;
        
Display();
    }   



Необходимые модели положи в папку Resources и в массиве resources указывай пути относительно нее (если например объект лежит в "Resources/Folder/Object", то путь будет "Folder/Object")

Левша09 28.05.2014 15:28

Ответ: Вопросы от новичка
 
pax, большое спасибо за коменты в коде, именно этого и не хватало.

WISHMASTER35 09.07.2014 04:26

Ответ: Вопросы от новичка
 
Вложений: 1
Кто-нибудь пробовал использовать GUIUtility.ScaleAroundPivot внутри BeginGrop-EndGroup?
Проблема в том, что ScaleAroundPivot влияет на размер группы.

Делаю редактор атласов.
Чтобы в привью рисовать тайлы на атласе, нужно рисовать внутри группы маленькие текстурки, с координатами от 0 до w\h (размер атласа).
Но группа может быть меньше, чем эти w и h. Для этого я пытаюсь отскейлить GUI матрицу, но это скейлит и размер группы, что в итоге обрезает часть атласа.
Вот так (: Только на скриншоте размер группы равен размеру атласа, поэтому box выходит за экран.


Часовой пояс GMT +4, время: 17:24.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot