![]() |
Ответ: Вопросы от новичка
Всем привет! Возник вопрос по Offset текстуры. У меня на объект повешено 2 материала. Первый основной, второй с альфой поверх него. Как мне изменять Offset второй текстурки? renderer.material.SetTextureOffset меняет только у основного (первого) материала. Спасибо.
|
Ответ: Вопросы от новичка
Код:
renderer.materials[1].SetTextureOffset |
Ответ: Вопросы от новичка
А переопределить оператор = нельзя?
Пишу такой класс Код:
class Container<T> where T : struct { |
Ответ: Вопросы от новичка
Оператор '=' переопределить нельзя. Более того нет неявного конструктора копирования. Нужно определять его самостоятельно
public Container(Container<T> other){value = other.value;} Используем: Container<int> one = new Container<int>(1); Container<int> two = new Container<int>(one); |
Ответ: Вопросы от новичка
seaman, мне простые типы нужно было записывать в мой контейнер. Ну ладно.
Я пытался сделать для моего MineCraft parallax шейдер без parallax текстуры. Т.е. чем светлее пиксель, тем больше выпирает пиксель. Но смещение текстурных координат было настолько сильным, что uv заходили на другие тайлы в атласе. Наверно глупый вопрос, но это никак нельзя исправить? Как узнать, что ссылка не на объект сцены, а на префаб? И интересно сам объект не может узнать в сцене он или лишь прифаб? На случай если вручную вызывать метод в префабе) |
Ответ: Вопросы от новичка
Цитата:
Аналогично вызвать метод в префабе просто невозможно. Сначала нужно инстанцировать префаб. Это аналогично тому, чтобы пытатьс завести чертеж машиныы и поехать на нем. Сначала по чертежу нужно сделать саму машину. |
Ответ: Вопросы от новичка
|
Ответ: Вопросы от новичка
Цитата:
Этот объект BlockSet для моего MineCraft. В OnEnable он инициируется, но в префабе OnEnable конечно не вызывается. Хотя можно и вручную вызвать метод инициализации. Вообщем хотел сделать, чтобы BlockSet мог быть и префабом и объектом. Второй вариант, чтобы перед игрой можно было выбрать BlockSet и создать из него не уничтожаемый объект, чтобы передать его в сцену с игрой. Может я не правильно делаю т.к. после завершения сцены игры он тоже не уничтожится и придется вручную это делать. |
Ответ: Вопросы от новичка
Цитата:
Цитата:
|
Ответ: Вопросы от новичка
Цитата:
Цитата:
|
Ответ: Вопросы от новичка
Цитата:
ЗЫ: Okay уменьши картинку. Форум сильно рвет. |
Ответ: Вопросы от новичка
Цитата:
Кстати вот код спавна при успешном подключение к серверу Код:
GameObject newplayer = GameObject.Instantiate(PlayerPrefab) as GameObject; |
Ответ: Вопросы от новичка
seaman, не знаю. Может меши не грузятся, но скрипты отлично работают.
Код:
blockSet.transform.position = Vector3.one; Я вот думаю может ScriptableObject использовать. Точно не знаю, но у него OnEnable должен вызываться после его загрузки. |
Ответ: Вопросы от новичка
Что есть blockSet в данном случае?
Нет на сцене префаба, какой может быть у него position? На сцене только объекты. Или вручную помещенные туда в редакторе, или сгенерированные скриптом или инстанируемые из префабов, других объектов. Ну и что такое position у того чего нет на сцене? Насчет ScriptableObject не знаю точно. Насколько я понимаю его нужно создавать ScriptableObject.CreateInstance или загружать из бандлов. Тогда вызовется OnEnable. Час посмотрю. Может что-то пойму получше. |
Ответ: Вопросы от новичка
seaman, position это просто поле(или свойство) скрипта Transform. Проверь, все отлично вызывается. Видно объекты все же создаются.
У ScriptableObject OnEnable вызывается и при загрузке редактора и при загрузки сцены. В моем случае с ним оказалось удобнее работать. |
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
Ну в -общем частично был не прав. Получается что я совсем не понимаю работы Юнити с префабами. Приношу свои извинения.
|
Ответ: Вопросы от новичка
Префаб в ресурсах это тоже объект, на нем висят скрипты и т.д., он просто не в сцене. Изменять его параметры и вызывать на нем функции не надо, т.к. это ведет к изменению ассета.
|
Ответ: Вопросы от новичка
Цитата:
Во вторых даже если из редактора это делать, то у изменяемого скрипта должен быть атрибут [ExecuteInEditMode], еще и SetDirty возможно нужно вызывать. |
Ответ: Вопросы от новичка
Из режима игры в редакторе меняются ассеты, так что осторожнее с этим.
|
Ответ: Вопросы от новичка
Продолжаю делать свой формат. Делаю чтобы список материалов содержался в xml файле. Т.е. хранились пути к материалам.
Получить путь к ассету легко AssetDatabase.GetAssetPath Но как загрузить ассет зная этот путь? Resources.LoadAssetAtPath работает только в редакторе. Или можно сохранять ID материала, а потом как-то загружать его по id? |
Ответ: Вопросы от новичка
Помогите с PlayerIO. Очень нужно. Проект стоит из-за этой проблемы. А в документации ничего не написано про синхронизацию
|
Ответ: Вопросы от новичка
Okay, не многие с сетью работали вообще. Создай тему на профильном форуме.
|
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
Я и так в Resources все кинул.
В документации написано что Resources.LoadAssetAtPath возвращает null в сборках. Видимо никак не получится хранить ссылку или путь на объект, чтобы потом можно было его загрузить. Интересно как Resources.Load поведет себя, если будет несколько ассетов с одинаковыми именами. Или он может и полный путь принимать, а не только имя? |
Ответ: Вопросы от новичка
Цитата:
Цитата:
|
Ответ: Вопросы от новичка
Как сделать, чтобы музыкальный клип продолжал звучать при переходе между сценами, а то он обрывается...
|
Ответ: Вопросы от новичка
Morganolla, наверное ж объект с клипом уничтожается? Созджай не уничтожаемый объект.
seaman, а если в проекте будет несколько, то относительно какой Resources? Наверно все эти папки сольются в одну. Не очень удобно т.к. может быть конфликт. |
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
|
Ответ: Вопросы от новичка
Не понимаю я это GUILayout.
Код:
GUILayout.BeginHorizontal(GUIContent.none, GUI.skin.box, GUILayout.ExpandWidth(true), GUILayout.Height(40)); Если убрать GUILayoutUtility.GetAspectRect(1), то высота будет минимальной т.е. меньше 40. Как задать жесткий размер? MinHeight и MaxHeight не помогают. |
Ответ: Вопросы от новичка
Подскажите как такое меню сделать? http://kms-system.com/uploads/posts/...4-23_00002.jpg
Т.е. само меню не по центру, а смещено в угол. А кнопки привязаны к левой стороне. Я так понимаю нужно с BeginArea как-то играться, чтобы область меню. Но как потом кнопки привязать к левой стороне? |
Ответ: Вопросы от новичка
Цитата:
Цитата:
|
Ответ: Вопросы от новичка
Инспектор что то не отображает статические переменные, а где их можно посмотреть?
|
Ответ: Вопросы от новичка
Их нельзя посмотреть обычным способом. Можешь написать свое окошко например выводящее эти переменные.
|
Ответ: Вопросы от новичка
Цитата:
Цитата:
По умолчанию кнопки растягивают область рисования gui и получается, что ширина всех кнопок равна самой широкой кнопки. Хотя может лучше будет и вручную это все задать. А кто нибудь пробовал свой GUISkin делать? Я вчера глянул, там столько настраивать надо... не говоря уже о количестве текстур)) |
Ответ: Вопросы от новичка
Вот в стиле бокса есть отступы margin и padding, они влияют на размер.
Еще есть фишка - можно делать GUILayout.Space(-5); что отодвинет элемент в обратную сторону. |
Ответ: Вопросы от новичка
Код:
public GameManager gm; Нужно вызвать скрипт. Пишу на C# В другом скрипте написано точно так же. Но в другом ошибки нету. Почему? Цитата:
|
Ответ: Вопросы от новичка
А что за ругань - прочитать можете? Там же все написано.
Юнити не может найти GameManager. Либо он не так пишется, либо он написан на другом языке (C#/JS) и следовательно его нужно поместить в нужную папку (Plugins). Либо он в какой-то dll/namespace, которую нужно подключить явно, используя using. |
Ответ: Вопросы от новичка
Как обычно делают меню? Каждый раздел меню в одном скрипте или в разных?
Обычно я главное меню, опции, хелп и др. разделял на разные скрипты. И если эти разделы довольно сложные, то лучше так и делать. Но сейчас я рисую меню не просто по центру, а задаю area. И прописывать координаты этой области в каждом скрипте не очень хочется, чтобы при их смене не переписывать все скрипты. Как тут лучше будет? |
Ответ: Вопросы от новичка
1. Можно разделить класс на несколько файлов используя partial модификатор.
2. Использовать статические функции отрисовки, которые будут в другом(других) классах. 3. Писать все в одном файле, для удобной навигации по файлу иcпользовать директиву #region - #endregion |
Ответ: Вопросы от новичка
Мне нужно на одном объекте проигрывать одновременно несколько клипов. Прикрепил к нему несколько АудоСорсов, у каждого свой клип. А как их адресовать-идентифицировать?
Есть еще статичная ф-ия - static function PlayClipAtPoint (clip : AudioClip, position : Vector3, volume : float = 1.0F) : void она наверно создает независимый сорс и потом его уничтожает, но тогда не понятно как задать параметры для этого сорса ( дальность и затухание)... И как я не старался звука от нее так и не добился ) Можно правда еще прикрепить чилд со своим АудиСорсом и играть оттуда , но ведь это гемор...:) |
Ответ: Вопросы от новичка
Подскажите пожалуйста что не так делаю
https://www.dropbox.com/s/szmefum389...y%20Project.7z |
Ответ: Вопросы от новичка
Цитата:
Код:
public AudioClip[] clipCollection; |
Ответ: Вопросы от новичка
Цитата:
Код:
void OnGUI() |
Ответ: Вопросы от новичка
Левша09
>Подскажите пожалуйста что не так делаю А что не так? |
Ответ: Вопросы от новичка
pax, я думаю лучше будет сделать скрипт MenuManager, который будет задавать шрифт, рисовать фон. И сделать класс AbstractMenu, и наследовать от этого класса свои разделы меню. А MenuManager пусть имеет ссылку на текущее меню и рисует его.
Кто-то пользовался яндекс диском? Почему не русскоязычные пользователи не могут от туда скачать? Мне сегодня несколько сообщений, что не могут зарегистрироваться там. |
Ответ: Вопросы от новичка
Цитата:
Добавил боксу Rigidbody, вроде стало как надо. |
Ответ: Вопросы от новичка
Цитата:
Вот сам код Код:
target.transform.Find("NameTag").GetComponent<TextMesh>().text = userid; |
Ответ: Вопросы от новичка
Цитата:
Проблему решил. Переименовал скрипты. |
Ответ: Вопросы от новичка
Кажется когда-то спрашивал как нарисовать несколько кнопок с одинаковой шириной.
Вот так Код:
GUILayout.BeginHorizontal(); Но как сделать, чтобы их ширина была немного больше? Только GUIStyle править? |
Ответ: Вопросы от новичка
Цитата:
Скорее всего где то вместо английской o (или a) была русская. Иначе переименование не помогло бы. |
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
А для того, чтобы метод принимал ссылку на метод обязательно нужно создавать глобальную переменную delegate?
|
Ответ: Вопросы от новичка
Кто знает, почему в редакторе одно, а при компиляции другое?
Вот допустим в редакторе я могу управлять анимациями, а в скомпилированной игре как будто ничего и не было. Одна модель и ландшафт |
Ответ: Вопросы от новичка
Okay, у всех анимация работала, а у тебя нет. Не странно ли? Выложи код чтоли.
|
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
Okay, только один проект так лажит? Все анимации в проекте лажат?
Попробуй пересоздать проект? |
Ответ: Вопросы от новичка
Цитата:
Цитата:
|
Ответ: Вопросы от новичка
Цитата:
Цитата:
В основном почти все в update http://pastebin.ru/wRUM1sOF |
Ответ: Вопросы от новичка
А нет ли каких-то объектов, помеченных тэгом EditorOnly?
|
Ответ: Вопросы от новичка
Не пойму как в Box'е текст рисуется немного со смещением от края?
Ведь GUI.skin.box.contentOffset равен (0,0). UPDATE За это padding отвечает. Хотя там еще есть переменные для смещения. pax, а в чем разница между делегатами и System.Action? Второе выглядит намного удобнее. |
Ответ: Вопросы от новичка
System.Action - это делегат. Так что вопрос странный. Ни в чем нет разницы. System.Action - сокращение определенного делегата.
|
Ответ: Вопросы от новичка
seaman, раньше я создавал глобальную ссылку public delegate f(), что было не так удобно.
|
Часовой пояс GMT +4, время: 10:24. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot