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)

Л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 areaRect, GUIStyle style)
    {
        
GUILayout.BeginArea(areaRect, style);
    }

    public 
LayoutArea(Rect areaRect, GUIContent content, GUIStyle style)
    {
        
GUILayout.BeginArea(areaRect, content, style);
    }

    public 
LayoutArea(Rect areaRect, GUIContent content)
    {
        
GUILayout.BeginArea(areaRect, content);
    }

    public 
LayoutArea(Rect areaRect, string content, GUIStyle style)
    {
        
GUILayout.BeginArea(areaRect, content, style);
    }

    public 
LayoutArea(Rect areaRect, string content)
    {
        
GUILayout.BeginArea(areaRect, content);
    }

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



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

    public 
LayoutHorizontal(Texture2D content, GUIStyle style, params GUILayoutOption[] options)
    {
        
GUILayout.BeginHorizontal(content, style, options);
    }

    public 
LayoutHorizontal(GUIStyle style, params GUILayoutOption[] options)
    {
        
GUILayout.BeginHorizontal(style, options);
    }

    public 
LayoutHorizontal(GUIContent content, GUIStyle style, params GUILayoutOption[] options)
    {
        
GUILayout.BeginHorizontal(content, style, options);
    }

    public 
LayoutHorizontal(string content, GUIStyle style, params GUILayoutOption[] options)
    {
        
GUILayout.BeginHorizontal(content, style, options);
    }

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

public class 
LayoutHorizontalCenter : System.IDisposable
{

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

    public 
LayoutHorizontalCenter(Texture2D content, GUIStyle style, params GUILayoutOption[] options)
    {
        
GUILayout.BeginHorizontal(content, style, options);
        
GUILayout.FlexibleSpace();
    }

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

    public 
LayoutHorizontalCenter(GUIContent content, GUIStyle style, params GUILayoutOption[] options)
    {
        
GUILayout.BeginHorizontal(content, style, options);
        
GUILayout.FlexibleSpace();
    }

    public 
LayoutHorizontalCenter(string content, GUIStyle style, params GUILayoutOption[] options)
    {
        
GUILayout.BeginHorizontal(content, style, options);
        
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 content, GUIStyle style, params GUILayoutOption[] options)
    {
        
GUILayout.BeginVertical(content, style, options);
    }

    public 
LayoutVertical(GUIStyle style, params GUILayoutOption[] options)
    {
        
GUILayout.BeginVertical(style, options);
    }

    public 
LayoutVertical(GUIContent content, GUIStyle style, params GUILayoutOption[] options)
    {
        
GUILayout.BeginVertical(content, style, options);
    }

    public 
LayoutVertical(string content, GUIStyle style, params GUILayoutOption[] options)
    {
        
GUILayout.BeginVertical(content, style, options);
    }

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


public class 
LayoutScrollView : System.IDisposable
{
    public 
LayoutScrollView(ref Vector2 scroll, params GUILayoutOption[] options)
    {
        
scroll = GUILayout.BeginScrollView(scroll, options);
    }

    public 
LayoutScrollView(ref Vector2 scroll, bool alwaysShowHorizontal, bool alwaysShowVertical, params GUILayoutOption[] options)
    {
        
scroll = GUILayout.BeginScrollView(scroll, alwaysShowHorizontal, alwaysShowVertical, options);
    }

    public 
LayoutScrollView(ref Vector2 scroll, GUIStyle style, params GUILayoutOption[] options)
    {
        
scroll = GUILayout.BeginScrollView(scroll, style, options);
    }

    public 
LayoutScrollView(ref Vector2 scroll, string content, GUIStyle style, params GUILayoutOption[] options)
    {
        
scroll = GUILayout.BeginScrollView(scroll, content, style, options);
    }

    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.r, color.g, color.b, color.a * _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.r, color.g, color.b, color.a * _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.r, color.g, color.b, color.a * _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.width, Screen.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, время: 15:46.

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