Страница 2 из 3

Re: FAQ. Рабочая тема — составляем

СообщениеДобавлено: 15 окт 2010, 22:30
DbIMok
В.: Как одновременно открыть несколько проектов Unity?
О.: Запустите Unity столько раз, сколько проектов нужно открыть. Для упрощения работы с проектами включите Edit - Preferences - Show Project Wizard at Startup.

исправил

Re: FAQ. Рабочая тема — составляем

СообщениеДобавлено: 19 дек 2010, 19:12
DbIMok
В.: Где посмотреть хоткеи редактора?
О.: http://blogs.unity3d.ru/2009/12/154/

В.: Как добавить свое действие в редакторе по хоткею?
О.: например - прятать объект по "H"
Синтаксис:
Используется csharp
@MenuItem ("GameObject/Hide Selection _h")
static function HideSelection () {
    go = Selection.activeGameObject;
    if ( go.renderer.enabled == true) {
        go.renderer.enabled = false;
    }
    else {
        go.renderer.enabled = true;
    }
}


В.: Как изменить разрешение текстуры в runtime?
О.: http://www.unifycommunity.com/wiki/inde ... xtureScale или через Texture2D.GetPixelBilinear

В.: Как получить ссылку на дочерний объект?
О.: Transform.Find
например, root.transform.Find("child").gameObject.material.renderer.enabled = false;

Re: FAQ. Рабочая тема — составляем

СообщениеДобавлено: 09 янв 2011, 18:19
Fredo
У меня была проблема, весь уровень создается динамически поэтому возникали проблемы с получением ссылок на определенные ГО(GameObject.Find() не находил объекта), как я понимаю это случается изза того что все функции Start и Awake выполняются подряд, тоесть если я создаю копию обьекта с помощью Instantiate в методе Start другого обьекта, это не гарантирует мне что в созданном обьекте вызовется метод Start и я смогу иницилизировать необходимые переменные. В связи с этим покопал на тему корутин и пришел к такому решению, думаю пригодится тем кто столкнулся с такими же проблемами.
Синтаксис:
Используется csharp
        void Start()
        {
                StartCoroutine(Init());
        }
       
        private IEnumerator Init()
        {
                while(true)
                {
                                                // Тут пытаемся получить ссылку на целевой обьект
                        player = GameObject.Find("Player");
                        if(player != null)
                        {
                                                                // Тут выполняем необходимую инициализацию
                                yield break;
                        }
                        else
                        {
                                                                // Если Обьект не получен ждем 10 милисекунд и повторяем
                                yield return new WaitForSeconds(0.01f);
                        }
                }
        }
 

Re: FAQ. Рабочая тема — составляем

СообщениеДобавлено: 09 янв 2011, 18:44
DbIMok
порядок выполнения скриптов http://unity3d.com/support/documentatio ... Order.html

Re: FAQ. Рабочая тема — составляем

СообщениеДобавлено: 24 янв 2012, 18:28
seaman
Значит так. Хоть это и рабочая тема, но!- вопросов своих тут не задавать!!! Если засекли часто повторяющийся вопрос на форуме - выкладывайте с ответом (если он есть). Если нет - так и напишите - вопрос часто повторяется, но ответа не нашел. Все посты с частными вопросами я удалю завтра (если кто-то раньше не удалит :) ).
По теме - замечание к основному посту
В.: Можно ли строить GUI визуальными методами?
XamlToUnityGUI не работает ссылка. И найти в свое время аналог я не смог. Если у кого-то сохранилось -с удовольствием почитал бы.
Также есть еще несколько решений:
ezgui
blindGUI
Quad UI
NGUI
PS^ не по теме - может из-за этого обилия сторонних решений юнитеки не торопятся с новым ГУИ?

Re: FAQ. Рабочая тема — составляем

СообщениеДобавлено: 27 янв 2012, 00:41
GIGABAR
Если кому интересны Unity Class, то вот:
Изображение

Re: FAQ. Рабочая тема — составляем

СообщениеДобавлено: 27 янв 2012, 16:31
AndreyMust19
Посмотрев темы, решил что частозадаваемыми являются следующие вопросы.
На некоторые из них уже есть ответы.

ОБЩИЕ
Можно ли продавать игру, сделанную на бесплатной версии редактора?
С чего начать чтобы сделать игру в Unity?

СКРИПТЫ
Как из скрипта обращатся к другим объектам?
Как получить доступ к переменной в скрипте на другом ГО?
Как обратиться к родительскому объекту?
Как обратиться к дочернему объекту?
Я отключил скрипт, но он всё равно частично работает!
Как визуализировать Raycast?

ФИЗИКА
Персонаж проваливается сквозь землю.
Добавил коллайдер к персонажу, но при перемещении он проходит сквозь препятствия
У меня глючит физика.
Как придать телу импульс?

РЕДАКТОР
Куда сохраняются логи редактора?
Где можно посмотреть, какие ресурсы сколько занимают в моём билде?


Другие вопросы (на к-ые даны ответы) являются нечастозадаваемыми.

Re: FAQ. Рабочая тема — составляем

СообщениеДобавлено: 02 июл 2012, 23:29
pirat9629
В.: Как сделать молнию.
О.: клик.

Re: FAQ. Рабочая тема — составляем

СообщениеДобавлено: 17 авг 2012, 10:11
Multirezonator
В.: Как сделать глобальный объект(один на всю сцену) и быстро получать доступ к его свойствам?
О.: Делать на свои глобальные объекты статические ссылки и через них использовать любые public переменные, свойства, функции:
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class Test : MonoBehaviour {
        public static Test instance;
       
        public float someFloatData;
       
        private void Awake() {
                instance = this;
                DontDestroyOnLoad(gameObject);
        }
       
        public void SomeFunction() {
                print("call of SomeFunction()");
        }
}
 

Потом в любом месте кода
Синтаксис:
Используется csharp
Test.instance.SomeFunction();
Test.instance.someFloatData;
 

Re: FAQ. Рабочая тема — составляем

СообщениеДобавлено: 17 авг 2012, 23:16
AMD
Добавление к вышенаписанному, пожалуйста подшейте к верхнему сообщению.

Глобальный скрипт для хранения переменных, не требуется вытягивание на сцену!
Синтаксис:
Используется csharp

public class Global{
   
    public static Global getInstace = new Global();

    public float configSensitivityMouse = 1.0f;
    public float valueVolume = 100.0f;
    public int startingYears = 2010;
    public int startingMonths = 6;
}

 


В любом другом скрипте

Синтаксис:
Используется csharp
int somesthg = Global.getInstace.startingYears;


Обращу внимание!
Убераем наследование от MonoBehaviour, не наследуем!
Using тоже не нужен

Re: FAQ. Рабочая тема — составляем

СообщениеДобавлено: 04 ноя 2012, 13:50
xcube
В: Как отследить fps и работу с памятью на ios устройствах ?
О: Для этого в XCode есть замечательный инструмент Profile, заустить его можно из меню Product>Profile
Кроме fps и памяти там есть много других полезных инструментов. Подробнее в хелпе или на русском здесь http://2tickets2dublin.com.ua/tag/instruments/
Скрытый текст:
towe это тестируемое приложение
Изображение

Re: FAQ. Рабочая тема — составляем

СообщениеДобавлено: 02 апр 2013, 18:23
AMD
Маленькая сборка вопросов, которые достаточно часто видел на форуме:
Подраздел мультиплеер (стандартная сеть Юни, используемый ЯП C# (c#) )

В: Как сделать, что бы я видел через свою камеру?
О: Использовать проверку, чей объект осуществляется с помощью isMine
Пример убийства камеры (скрипт и камера на одном объекте):
Синтаксис:
Используется csharp
void Start()
{
        if (networkView.isMine)
        {
            Debug.Log("This object is my");
        }
        else
          {
        Destroy(camera);
          }
}

Аналогичный пример, только камера остается, она только выключается, мало ли надо будет включить?
Синтаксис:
Используется csharp
void Start()
{
        if (networkView.isMine)
        {
            Debug.Log("This object is my");
         }
        else
          {
        camera.enabled = false;
          }
}

В: Как управлять только своим персонажем?
О: Как и выше, нужно проверить чей это объект, и если он не принадлежит Вам (чужое нельзя брать!) - отключить его
Пример:
Синтаксис:
Используется csharp
void Start()
{
        if (!networkView.isMine)
         {
            GetComponent<SomeScript>().enabled = false;
         }
}

Маленькое пояснение:
Первое – вместо SomeScript нужно написать название скрипта, который хотим отключить.
Второе – GetComponent только если такой скрипт есть на этом объекте.
Третье – если нужно отключить именно этот скрипт, можно обратиться так this.enabled = false;

В: Как передать какую-то переменную какому-нибудь другому игроку
О: Как вариант через RPC вызов (посыл)
Пример:
Синтаксис:
Используется csharp
float someVal;
void Foo()
{
        networkView.RPC("SyncVal", RPCMode. Others, someVal);
}

[RPC]
void SyncVal(float val)
{
                someVal  = val;
}

Скрипт должен быть у каждого, кто должен получить значение переменной.

Подробнее здесь

Re: FAQ. Рабочая тема — составляем

СообщениеДобавлено: 04 апр 2013, 12:05
nile
В.: Как мне реализовать паузу?
О.: Наиболее простой вариант — установить Time.timeScale в ноль.

На днях решал проблему анимации меню в режиме паузы. TimeScale лучше ставить 1/1000000 например, а в меню соответственно умножать. Так реализовано в Bootcamp demo.

Re: FAQ. Рабочая тема — составляем

СообщениеДобавлено: 18 окт 2013, 12:39
2rusbekov
В: Как отловить MouseOver и MouseOut ивенты на гуи элементах?
О: С помощью GUI.tooltip (второй пример)

Re: FAQ. Рабочая тема — составляем

СообщениеДобавлено: 11 янв 2014, 17:41
xcube
В: В Unity 4.xx до неузнаваемости изменили компонент Animation и при управлении этой анимации из скрипта возникают ошибки, что делать?
Если у Вас анимация, созданная в Юнити - решение от mrLama
1) В проекте выделите нужную анимацию
2) В инспекторе переключитесь на режим Debug (у вас появится множество новых настроек)
3) Animation type поменять значение "2" на "1" ()
4) В инспекторе переключитесь обратно режим Normal

Теперь вид компонента Animation примет прежний вид и скрипт перестанет выдавать ошибки.

Если у Вас анимация импортированная из внешней программы. В данной вкладке:
Изображение
изменить Humanoid на Legacy.