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 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, время: 01:30.

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