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)

Morganolla 18.10.2013 19:00

Ответ: Вопросы от новичка
 
Можно ли управлять цветом материала с шейдером Partices->Alpha Blended? Все опции renderer.material.SetColor() - "_Color","_SpecColor" "_Emission""_ReflectColor" - не работают.... Хотя в инспекторе можно регулировать цвета...

pax 18.10.2013 19:18

Ответ: Вопросы от новичка
 
_TintColor используй

К слову все исходники стандартных шейдеров есть тут: http://unity3d.com/unity/download/archive

WISHMASTER35 21.10.2013 01:28

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

int id = GUIUtility.GetControlID("Bone".GetHashCode(), FocusType.Keyboard);
MyHandles.FreeMoveHandle(id, pos, Quaternion.identity, 0.2f);
if(GUIUtility.hotControl == id) {
bone.rot = MyHandles.RotationHandle(bone.rot, pos, 0.3f);
}

Но при любом нажатии GUIUtility.hotControl меняется на что-то другое.

pax 21.10.2013 02:02

Ответ: Вопросы от новичка
 
а кнопки не судьба использовать?
http://docs.unity3d.com/Documentatio...es.Button.html

WISHMASTER35 25.10.2013 20:28

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

public static bool Do(int id, Vector3 position, Quaternion direction, float size, float pickSize, Handles.DrawCapFunction capFunc)
{
    Event current = Event.current;
    switch (current.GetTypeForControl(id))
    {
        case EventType.MouseDown:
            if (HandleUtility.nearestControl == id)
            {
                GUIUtility.hotControl = id;
                current.Use();
            }
            break;

        case EventType.MouseUp:
            if ((GUIUtility.hotControl != id) || ((current.button != 0) && (current.button != 2)))
            {
                break;
            }
            GUIUtility.hotControl = 0;
            current.Use();
            if (HandleUtility.nearestControl != id)
            {
                break;
            }
            return true;

        case EventType.MouseMove:
            if (((HandleUtility.nearestControl == id) && (current.button == 0)) || ((GUIUtility.keyboardControl == id) && (current.button == 2)))
            {
                HandleUtility.Repaint();
            }
            break;

        case EventType.Repaint:
        {
            Color color = Handles.color;
            if ((HandleUtility.nearestControl == id) && !GUI.enabled)
            {
                Handles.color = (Color) Handles.selectedColor;
            }
            capFunc(id, position, direction, size);
            Handles.color = color;
            break;
        }
        case EventType.Layout:
            if (GUI.enabled)
            {
                HandleUtility.AddControl(id, HandleUtility.DistanceToCircle(position, pickSize));
            }
            break;
    }
    return false;
}

MouseDown работает для всех кнопок мыши.
Но код события MouseUp выполняется, только для левой кнопки мыши.
Похоже, если GUIUtility.hotControl не сбросить на ноль, то камера не будет работать.
Только как камера связана с GUIUtility.hotControl не понимаю.

WISHMASTER35 01.11.2013 01:18

Ответ: Вопросы от новичка
 
Почему нельзя добавлять скрипт наследованный от Component? Ведь стандартные скрипты от Component расследованы и все работает.

pax 01.11.2013 07:04

Ответ: Вопросы от новичка
 
C какой целью это нужно? Component не получает мессаджей Start/Update и т.д.

seaman 01.11.2013 11:00

Ответ: Вопросы от новичка
 
MonoBehaviour - это тот же компонент. Если Вам не нужны дополнительные методы, которые он предоставляет - просто не реализуйте их.

WISHMASTER35 01.11.2013 17:31

Ответ: Вопросы от новичка
 
Просто скрипту не нужны никакие события, попробовал наследовать его от Component. Думал может так оптимальнее будет. Но вот почему-то стандартные скрипты работают, а мои выкидывают ошибку. Интересная ситуация.

Morganolla 12.11.2013 14:43

Ответ: Вопросы от новичка
 
Как можно сохранить аудиоклип, записанный с микрофона. И при последующих запусках игрушки его закачивать. Есть ли какие то ф-ии по записи клипа из памяти в формат огг или мп3?
Не записывать же его в отсчетах с флоатами...)

pax 12.11.2013 16:35

Ответ: Вопросы от новичка
 
был где-то скрипт кодирующий в wav, mp3 и ogg кодировщиков нет в рантайме. mp3 к тому же читается только на мобильниках. На остальных платформах Ogg. Wav на всех.

seaman 12.11.2013 22:49

Ответ: Вопросы от новичка
 
http://forum.unity3d.com/threads/119...to-wav-problem

pie 16.11.2013 13:32

Ответ: Вопросы от новичка
 
Всем привет. Возникли трудности при импорте меша с костью. В "максе" создал меш, создал одну кость bone. К мешу применил модификатор skin. Добавил туда кость, настроил влияние на вершины (выделил все вершины, снял галочку с normalize, поставил всем вершинам 0, далее выбрал нужные и поставил им 1). Проверил в "максе" работоспособность и экспортировал в unity. В unity кость двигает весь мешь, а не только те вершины которые нужно. Что я делаю не так?

pax 16.11.2013 15:16

Ответ: Вопросы от новичка
 
Сколько костей выбрано в SkinnedMeshRenderer? И почему не две кости? Одна неподвижная для одной части меша, вторая для подвижной.

WISHMASTER35 18.11.2013 02:40

Ответ: Вопросы от новичка
 
Вложений: 1
Ragdoll делают из объекта - игрока\бота?
Или создают другой объект? Т.е. после смерти игрока удаляют и создают на его месте Ragdoll?
При первом варианте казалось бы достаточно отключить управление\физику и включить коллайдеры и джоинты. Но только у меня на костях своих триггеров много, которые описывают тело и ловят рейкасты пуль.
При втором варианте придется копировать матрицу каждой кости.

Может правильно будет для Ragdoll'а использовать те коллайдеры, которые ловят пули? Кто как делал?
Справа на скрине - ragdoll

Morganolla 28.11.2013 13:37

Ответ: Вопросы от новичка
 
Заметил, что последние версии Юнити все время лезут в инет через мой фаервол. Зачем? Это нормально?

PassCall 29.11.2013 15:34

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

Сообщение от Morganolla (Сообщение 270737)
Заметил, что последние версии Юнити все время лезут в инет через мой фаервол. Зачем? Это нормально?

Обновление ищет наверное

4yBa4Ok 15.12.2013 11:43

Ответ: Вопросы от новичка
 
Возможно ли запустить Editor юнити под Linux'сом, просто собираюсь ставить SteamOS и мне интересен запуск и создание приложений)

pax 15.12.2013 12:05

Ответ: Вопросы от новичка
 
Думаю нет. Для Linux можно создавать приложения под Windows или Mac.

seaman 15.12.2013 12:50

Ответ: Вопросы от новичка
 
Ну вроде под Wine Юнити ставили. Тут есть видурок вот:
http://forum.unity3d.com/threads/183...D-4-x-on-Linux
Как это будет работать под СтимОС - выяснять Вам.

Morganolla 16.12.2013 16:36

Ответ: Вопросы от новичка
 
Legacy Particles - настроил систему для взрыва (one shot), а как его вызвать скриптом не нашел. Объект Legacy Particles не распознается как Particle Systems , и нельзя применить функцию Play();

Morganolla 16.12.2013 16:45

Ответ: Вопросы от новичка
 
Вообще система частиц в Юнити - отстой... Хоть свою пиши... Старую они забросили (Легаси), а в новой половина функций не работает! (анимация скорости, прозрачности и т.п.) Если я ошибся - поправьте.

pax 16.12.2013 17:22

Ответ: Вопросы от новичка
 
Legacy Particles Это компоненты ParticleEmitter, ParticleAnimator и ParticleRenderer а не ParticleSystem.

4yBa4Ok 17.12.2013 15:45

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

Сообщение от seaman (Сообщение 271434)
Ну вроде под Wine Юнити ставили. Тут есть видурок вот:
http://forum.unity3d.com/threads/183...D-4-x-on-Linux
Как это будет работать под СтимОС - выяснять Вам.

C SteamOS возникли трудности, пришлось поставить Ubuntu 13.10, сделал все по видео, но ошибка вылезает Error initializing license system. Странная история...
UPD:
FIXED

Arton 17.12.2013 18:45

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

Сообщение от 4yBa4Ok (Сообщение 271560)
C SteamOS возникли трудности, пришлось поставить Ubuntu 13.10, сделал все по видео, но ошибка вылезает Error initializing license system. Странная история...
UPD:
FIXED

SteamOS ещё не вышла, в этом и заключается трудность??? :4to:

4yBa4Ok 17.12.2013 18:51

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

Сообщение от Arton (Сообщение 271571)
SteamOS ещё не вышла, в этом и заключается трудность??? :4to:

Нет) Трудность в системных требованиях) А вот и сама SteamOS http://store.steampowered.com/steamos/buildyourown

Arton 17.12.2013 19:22

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

Сообщение от 4yBa4Ok (Сообщение 271572)
Нет) Трудность в системных требованиях) А вот и сама SteamOS http://store.steampowered.com/steamos/buildyourown

Хорошо, видимо информация для тестеров.

is.SarCasm 18.12.2013 23:21

Ответ: Вопросы от новичка
 
Как сделать такой эффект? Может в ассет сторе есть уже такое?

Morganolla 30.12.2013 03:15

Ответ: Вопросы от новичка
 
Начиная с каких-то версий 4.2 при запуске проигрывания сцены Юнити начинает лезть в сет и выдает ошибки, т.к. мой фаейрвол ее блокирует. Как будто она (Юнити) думает, что я делаю ММО с обращением к серверу :))). Ошибки такие: -
Socket: connect failed, error: Operation has failed with error 0x274d: Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение (0).
Подскажите, что это такое и как это отключить?

pax 30.12.2013 07:26

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

Сообщение от is.SarCasm (Сообщение 271622)
Как сделать такой эффект? Может в ассет сторе есть уже такое?

Прожекторы пробовал?

Morganolla 14.01.2014 16:56

Ответ: Вопросы от новичка
 
Можно ли сделать на Юнити свой редактор-приложение игры так, чтобы в окно приложения (этого редактора) можно было перетащить и создать на сцене 3Д объект из файла, типа .obj/.dae/.fbx на десктопе или проводнике ?

pax 14.01.2014 16:59

Ответ: Вопросы от новичка
 
Если только какими-то хуками на С++ плагин написать для перехвата драг&дроп...

Morganolla 14.01.2014 19:04

Ответ: Вопросы от новичка
 
Спасибо, допустим перехватили объект, а как его импортировать в GameObject? Есть функции импорта в нужный компонент объекта ( меш, анимации и пр.)?

seaman 14.01.2014 20:18

Ответ: Вопросы от новичка
 
Можно спокойно перетаскивать в "Project". Obj, fbx. Скорее всего все те форматы, которые Юнити понимает.
Далее пишешь скрипт, который используя AssetPostprocessor.OnPostprocessModel инстанцирует только что импортированную модель на сцену.
Одна тонкость - почему то в MeshFilter не подтягивается импортированный меш. Нужно назначать вручную.
----
Так, слегка сложнее. Меш висит не на самом импортированном объекте, а на его ребенке. Нужно перебирать всех детей и на том, где есть меш - назначать объекту в сцене.
Это, конечно, для объекта с одним мешем. Если он составной - еще сложнее.
Было бы интереснее разобраться - почему не подхватывается меш автоматом.

pax 14.01.2014 20:53

Ответ: Вопросы от новичка
 
Для импорта в рантайме особо нет библиотек, вот к примеру OBJ http://forum.unity3d.com/threads/431...e-obj-importer

А может я не так вопрос понлял вопрос про редактор? Я писал как то сам импортер b3d моделей в Unity http://shgames.ru/index.php?title=%D...1%82%D0%B0_B3D

seaman 14.01.2014 21:22

Ответ: Вопросы от новичка
 
А блин, это я не так понял. Надо в игре-приложении это делать, а не в редакторе.
Сорри.

Morganolla 14.01.2014 23:48

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

Сообщение от seaman (Сообщение 272559)
Можно спокойно перетаскивать в "Project". Obj, fbx.

Ты наверно не понял идею. Я хочу, чтобы работающее приложение получив файл меша, вышеупомянутых форматов, отобразило этот объект у себя на сцене.
Таким образом должен быть импортер разных 3Д форматов в самом приложении. А "Project" здесь абсолютно не причем!

pax 15.01.2014 07:24

Ответ: Вопросы от новичка
 
Ну как я сказал, особо для рантайма импортеров нет (тока obj, ссылка выше), можно написать плагин на С++ используя какие-то библиотеки типа http://assimp.sourceforge.net/ или FBX SDK

4yBa4Ok 01.02.2014 15:12

Ответ: Вопросы от новичка
 
Как написать пик по террейну?

pax 01.02.2014 15:21

Ответ: Вопросы от новичка
 
Если у террейна есть коллайдер, достаточно простого рейкаста.
http://docs.unity3d.com/Documentatio...s.Raycast.html

WISHMASTER35 03.02.2014 01:40

Ответ: Вопросы от новичка
 
Есть префаб созданный из модели со скелетом и анимацией.
Так вот, если у модели изменяется масштаб, то скелет остается с прежним масштабом. И получается, что размер меша новый, а скелет старый.
Это можно как-то по простому исправить? А то приходится полностью заново из модели создавать префаб.

Okay 12.03.2014 07:04

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

void CodeMessage(string RecCode)
        {
                int i = 0;
                string[] arraystring;
                string Command;
                string FParametr;
                while(RecCode[i] != RecCode.Length)
                {
                        if(RecCode[i] != '(')
                        {
                                arraystring[i] = RecCode[i];
                                i += 1;
                        }
                        else
                        {
                                Command = sizeof(arraystring);
                                i += 1;
                                if(Command == "CreateCube")
                                {
                                }
                                if(FParametr == "playerid")
                                {
                                }
                        }
                }
        }

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

pax 12.03.2014 07:50

Ответ: Вопросы от новичка
 
К примеру так (если я правильно понял)
PHP код:

void CodeMessage(string RecCode)
    {
        
string[] arraystring RecCode.Split(new char[]{'('')'}, StringSplitOptions.RemoveEmptyEntries);
        
string Command arraystring[0];
        
string FParametr arraystring.Length>1?arraystring [1]:(string)null;

        if(
Command == "CreateCube")
        {

        }
        if(
FParametr == "playerid")
        {

        }
    } 


Okay 12.03.2014 09:45

Ответ: Вопросы от новичка
 
pax, нет, не совсем так.
Я вызываю функцию CodeMessage с параметром Code.
Идет запись каждого символа в массив из переменной Code, пока не встретится скобка. Если скобка встречается, то все, конец переменной Command. Далее после скобки делает тоже самое и записывает в переменную FParametr, пока не встретит скобку.

P.S. Где так кодить научиться?

pax 12.03.2014 10:37

Ответ: Вопросы от новичка
 
Твой код делает совсем не так, он пока ничего не записывает в массив, потому что массив не определен.
Мой код разделяет строку на части по скобкам. Нулевой элемент массива это команда, второй - параметры (их можно разделить по запятой например).

PS: я самоучка.

Morganolla 24.03.2014 18:15

Ответ: Вопросы от новичка
 
Нубский вопрос и все же... Слышал мнение, что Юнити-приложение на C# скриптинге будет работать быстрее, чем на Java, ибо C# компилируется в нативный код перед запуском, а Жава работает чисто как интерпретатор... Это правда? Вообще хотелось бы лучше представлять себе всю эту технологию... как из Юнити преобразуется в исполнительный код...

pax 24.03.2014 18:18

Ответ: Вопросы от новичка
 
Наверное тут есть много ответов http://msdn.microsoft.com/ru-ru/library/8bs2ecf4.aspx Хотя в Unity используется Mono, но сути это не меняет.
Ну и конкретнее http://msdn.microsoft.com/ru-ru/library/k5532s8a.aspx

Morganolla 24.03.2014 18:28

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

Сообщение от pax (Сообщение 277680)
Наверное тут есть много ответов http://msdn.microsoft.com/ru-ru/library/8bs2ecf4.aspx Хотя в Unity используется Mono, но сути это не меняет.
Ну и конкретнее http://msdn.microsoft.com/ru-ru/library/k5532s8a.aspx

Ну и ваш окончательный приговорчик, гуру?

pax 24.03.2014 20:21

Ответ: Вопросы от новичка
 
Как-то мы тут проводили тесты, сравнивая работу с массивами на Java, C#, C++... Java выиграла у C#. Но это не является результатом. Вероятно где-то java быстрее, где-то медленнее.

Если под Java имеется ввиду UnityScript (Java Script) который идет с Unity, то он тоже компилируется как и C#, правда код который генерирует компилятор JS при декомпиляции на C# бывает несколько кривым. C# имеет существенное преимущество по возможностям языка в отличии от JS. Да и применить его можно не только в Unity.

Лit}{Ъ 25.03.2014 16:30

Ответ: Вопросы от новичка
 
Не ругайте сильно ). Вопрос на гугление, но поверхностный обзор не дал ответа.
Поддерживает ли юнити либы в натив коде? Либо ещё какие способы для немультиплатформенных офлайн приложений шарахнуть по узкому в плане быстродействия месту чем нибудь вполне низкоуровневым.

pax 25.03.2014 16:56

Ответ: Вопросы от новичка
 
Поддерживает http://docs.unity3d.com/Documentatio...l/Plugins.html

WISHMASTER35 07.04.2014 19:11

Ответ: Вопросы от новичка
 
Замученный уже этими GUILayout.Begin\End попробовал писать в таком стиле:
Код:

        private static void Area(Rect rect, System.Action action) {
                GUILayout.BeginArea( rect );
                action();
                GUILayout.EndArea();
        }

        private static void HorizontalCenter(System.Action action) {
                GUILayout.BeginHorizontal();
                GUILayout.FlexibleSpace();
                GUILayout.BeginVertical();

                action();

                GUILayout.EndVertical();
                GUILayout.FlexibleSpace();
                GUILayout.EndHorizontal();
        }

Код:

                Rect rect = new Rect(0, 0, Screen.width, Screen.height);
                Area( rect, () => HorizontalCenter( () => {
                        // draw my gui                               
                } ) );

Давно хотел разобраться с этими лямбдами.
Никто так не пробовал?
Хотя получилось наверно еще страшнее.

pax 08.04.2014 09:08

Ответ: Вопросы от новичка
 
Держи мой вариант:
PHP код:

using UnityEngine;

public class 
LayoutArea System.IDisposable
{
    public 
LayoutArea(Rect areaRect)
    {
        
GUILayout.BeginArea(areaRect);
    }

    public 
LayoutArea(Rect areaRectGUIStyle style)
    {
        
GUILayout.BeginArea(areaRectstyle);
    }

    public 
LayoutArea(Rect areaRectGUIContent contentGUIStyle style)
    {
        
GUILayout.BeginArea(areaRectcontentstyle);
    }

    public 
LayoutArea(Rect areaRectGUIContent content)
    {
        
GUILayout.BeginArea(areaRectcontent);
    }

    public 
LayoutArea(Rect areaRectstring contentGUIStyle style)
    {
        
GUILayout.BeginArea(areaRectcontentstyle);
    }

    public 
LayoutArea(Rect areaRectstring content)
    {
        
GUILayout.BeginArea(areaRectcontent);
    }

    public 
void Dispose()
    {
        
GUILayout.EndArea();
    }
}



public class 
LayoutHorizontal System.IDisposable
{
    public 
LayoutHorizontal(params GUILayoutOption[] options)
    {
        
GUILayout.BeginHorizontal(options);
    }

    public 
LayoutHorizontal(Texture2D contentGUIStyle styleparams GUILayoutOption[] options)
    {
        
GUILayout.BeginHorizontal(contentstyleoptions);
    }

    public 
LayoutHorizontal(GUIStyle styleparams GUILayoutOption[] options)
    {
        
GUILayout.BeginHorizontal(styleoptions);
    }

    public 
LayoutHorizontal(GUIContent contentGUIStyle styleparams GUILayoutOption[] options)
    {
        
GUILayout.BeginHorizontal(contentstyleoptions);
    }

    public 
LayoutHorizontal(string contentGUIStyle styleparams GUILayoutOption[] options)
    {
        
GUILayout.BeginHorizontal(contentstyleoptions);
    }

    public 
void Dispose()
    {
        
GUILayout.EndHorizontal();
    }
}

public class 
LayoutHorizontalCenter System.IDisposable
{

    public 
LayoutHorizontalCenter(params GUILayoutOption[] options)
    {
        
GUILayout.BeginHorizontal(options);
        
GUILayout.FlexibleSpace();
    }

    public 
LayoutHorizontalCenter(Texture2D contentGUIStyle styleparams GUILayoutOption[] options)
    {
        
GUILayout.BeginHorizontal(contentstyleoptions);
        
GUILayout.FlexibleSpace();
    }

    public 
LayoutHorizontalCenter(GUIStyle styleparams GUILayoutOption[] options)
    {
        
GUILayout.BeginHorizontal(styleoptions);
        
GUILayout.FlexibleSpace();
    }

    public 
LayoutHorizontalCenter(GUIContent contentGUIStyle styleparams GUILayoutOption[] options)
    {
        
GUILayout.BeginHorizontal(contentstyleoptions);
        
GUILayout.FlexibleSpace();
    }

    public 
LayoutHorizontalCenter(string contentGUIStyle styleparams GUILayoutOption[] options)
    {
        
GUILayout.BeginHorizontal(contentstyleoptions);
        
GUILayout.FlexibleSpace();
    }

    public 
void Dispose()
    {
        
GUILayout.FlexibleSpace();
        
GUILayout.EndHorizontal();
    }
}


public class 
LayoutVertical System.IDisposable
{
    public 
LayoutVertical(params GUILayoutOption[] options)
    {
        
GUILayout.BeginVertical(options);
    }

    public 
LayoutVertical(Texture2D contentGUIStyle styleparams GUILayoutOption[] options)
    {
        
GUILayout.BeginVertical(contentstyleoptions);
    }

    public 
LayoutVertical(GUIStyle styleparams GUILayoutOption[] options)
    {
        
GUILayout.BeginVertical(styleoptions);
    }

    public 
LayoutVertical(GUIContent contentGUIStyle styleparams GUILayoutOption[] options)
    {
        
GUILayout.BeginVertical(contentstyleoptions);
    }

    public 
LayoutVertical(string contentGUIStyle styleparams GUILayoutOption[] options)
    {
        
GUILayout.BeginVertical(contentstyleoptions);
    }

    public 
void Dispose()
    {
        
GUILayout.EndVertical();
    }
}


public class 
LayoutScrollView System.IDisposable
{
    public 
LayoutScrollView(ref Vector2 scrollparams GUILayoutOption[] options)
    {
        
scroll GUILayout.BeginScrollView(scrolloptions);
    }

    public 
LayoutScrollView(ref Vector2 scrollbool alwaysShowHorizontalbool alwaysShowVerticalparams GUILayoutOption[] options)
    {
        
scroll GUILayout.BeginScrollView(scrollalwaysShowHorizontalalwaysShowVerticaloptions);
    }

    public 
LayoutScrollView(ref Vector2 scrollGUIStyle styleparams GUILayoutOption[] options)
    {
        
scroll GUILayout.BeginScrollView(scrollstyleoptions);
    }

    public 
LayoutScrollView(ref Vector2 scrollstring contentGUIStyle styleparams GUILayoutOption[] options)
    {
        
scroll GUILayout.BeginScrollView(scrollcontentstyleoptions);
    }

    public 
void Dispose()
    {
        
GUILayout.EndScrollView();
    }
}

public class 
LayoutCenter System.IDisposable
{
    public 
LayoutCenter()
    {
        
GUILayout.FlexibleSpace();
    }

    public 
void Dispose()
    {
        
GUILayout.FlexibleSpace();
    }
}

public class 
LayoutLeft System.IDisposable
{
    public 
void Dispose()
    {
        
GUILayout.FlexibleSpace();
    }
}

public class 
LayoutRight System.IDisposable
{
    public 
LayoutRight()
    {
        
GUILayout.FlexibleSpace();
    }

    public 
void Dispose()
    {
    }
}


public class 
LayoutColor System.IDisposable
{
    private 
readonly Color _color;

    public 
LayoutColor(Color color)
    {
        
_color GUI.color;
        
GUI.color = new Color(color.rcolor.gcolor.bcolor._color.a);
    }

    public 
void Dispose()
    {
        
GUI.color _color;
    }
}

public class 
LayoutContentColor System.IDisposable
{
    private 
readonly Color _color;

    public 
LayoutContentColor(Color color)
    {
        
_color GUI.contentColor;
        
GUI.contentColor = new Color(color.rcolor.gcolor.bcolor._color.a);
    }

    public 
void Dispose()
    {
        
GUI.contentColor _color;
    }
}

public class 
LayoutBackgroundColor System.IDisposable
{
    private 
readonly Color _color;

    public 
LayoutBackgroundColor(Color color)
    {
        
_color GUI.backgroundColor;
        
GUI.backgroundColor = new Color(color.rcolor.gcolor.bcolor._color.a);
    }

    public 
void Dispose()
    {
        
GUI.backgroundColor _color;
    }
}


public class 
LayoutEnabled System.IDisposable
{
    private 
readonly bool _enabled;
    private 
Color _color;
    public 
LayoutEnabled(bool enabled)
    {
        
_enabled GUI.enabled;
        
GUI.enabled enabled;
    }

    public 
void Dispose()
    {
        
GUI.enabled _enabled;
    }




Использование

PHP код:

using(new LayoutArea(new Rect(0,0,Screen.widthScreen.height)))
{
    ...



WISHMASTER35 09.04.2014 22:53

Ответ: Вопросы от новичка
 
pax, интересная идея. Главное не забыть писать using.
Классно было бы, если как-то так можно было писать:
Area(rect) < HorizontalLayout() < {...}

Okay 12.04.2014 08:44

Ответ: Вопросы от новичка
 
Как реализовать поворот спрайта?
Пробовал через transform.rotate, но он вращается как то непонятно.
Нужно чтобы слева-направо и справа-налево поворачивался моментально, а перпендикулярно - плавно. Есть пример может у кого?

Nex 12.04.2014 09:13

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

public class sp : MonoBehaviour {
        private float ang;

        void Update () {
                ang += 1f;
                transform.rotation = Quaternion.Euler (new Vector3 (0,0,ang));
        }
}


Okay 12.04.2014 09:20

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

Сообщение от Nex (Сообщение 278830)
Код:

public class sp : MonoBehaviour {
        private float ang;

        void Update () {
                ang += 1f;
                transform.rotation = Quaternion.Euler (new Vector3 (0,0,ang));
        }
}


Спасибо, очень вам благодарен

WISHMASTER35 14.04.2014 02:59

Ответ: Вопросы от новичка
 
Вот сделал я методом DontDestroyOnLoad мой объект не уничтожаемым.
Объект перешел в новую сцену. Можно в новой сцене как-то сделать его смертным?

pax 14.04.2014 07:49

Ответ: Вопросы от новичка
 
Попробуй использовать это: http://docs.unity3d.com/Documentatio...WasLoaded.html

Okay 14.04.2014 20:03

Ответ: Вопросы от новичка
 
Как сделать проверку на нажатие мышки по объекту?

Morganolla 18.04.2014 12:02

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

Сообщение от Okay (Сообщение 278957)
Как сделать проверку на нажатие мышки по объекту?

На ютубе полно роликов. Через RaycastHit().

У меня вопрос - как можно из Юнити-приложения на ИОС запустить другую игру в айпаде. Ну естественно известно где эта игра находится и как называется... и т.д. и т.п...

SBJoker 18.04.2014 13:14

Ответ: Вопросы от новичка
 
Насколько я вкурсе на залоченном (без рута) устройстве - никак. Каждое приложение живёт в своём ограниченном мирке.

Но, мб я неправ.

Morganolla 18.04.2014 13:31

Ответ: Вопросы от новичка
 
Расширю свой предыдущий вопрос... Я делаю интерактивные детские книжки, которые представляют собой отдельные приложения под ИОС. Встала задача сделать приложение-библиотеку, где можно посмотреть новинки для скачивания и запускать из нее уже установленные на этом устройстве книжки, входящие в эту библиотеку.
Как это можно реализовать? Допустим книжка после установки при первом запуске "прописывается" в библиотеке (меняя некий конфиг-файл библиотеки) . Библиотека узнает, что книжка установлена, и потом должна уметь из себя запустить эту книжку-приложение...

SBJoker 18.04.2014 15:11

Ответ: Вопросы от новичка
 
Обычно это делается в виде приложения библиотеки и скачиваемых внутрь него собственно книжек в виде каких то архивов.

Ещё раз, приложения "легально" не могут взаимодействовать между собой.


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

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