![]() |
Ответ: Вопросы от новичка
ScriptableObject + CustomEditor попробовал?
|
Ответ: Вопросы от новичка
Цитата:
Хотелось несколько иного. Например есть 3ds файл. Хотелось бы для него написать инспектор аналогичный инспектору fbx файла. (Это чисто пример, но понятно что хочется). Сейчас нужно или из контекстного меню или из меню сверху запускать импортер такого файла, открывать в импортере отдельное окно с настройками импорта... |
Ответ: Вопросы от новичка
да, так я импортер b3d писал ага, тоже бы хотелось, но к сожалению не нашел как сделать
|
Ответ: Вопросы от новичка
Почитал про PropertyDrawer.
Классно. Интересно, что можно помечать переменные своим атрибутом и создать для своего атрибута этот PropertyDrawer. Как в примере с RangeAttribute. Но вот чего я не понял, это почему все рисуется через EditorGUI, а не EditorGUILayout! Если я правильно понял, то рисовать можно только в одну строку. Сильно не разгонишься!!!!!!!!!!!!!!!!!!! seaman, Цитата:
Опять про AssetPostprocessor. seaman, в твоем примере шрифт грузится просто в статическую ссылку? Юнити шрифт и другие поддерживаемые форматы в инспекторе отображается как обычный ассет, что очень удобно. Да и в билд сам файл шрифта думаю не попадает, а остается ассет созданный из данных шрифта. |
Ответ: Вопросы от новичка
Цитата:
![]() Он создается в спецпрограмме, которая кроме такого атласа создает описание его - список литер с координатами и еще некоторыми параметрами. Вот это описание я и гружу. В описании есть имя текстуры атласа. Так что при парсине можно привязать такой битмапфонт к текстуре. После загрузки создается структура с описанием фонта и внутри с описанием каждой литеры. Эта структура сохраняется (либо в файл своего формата в папку Resources, либо вообще в базу данных - по необходимости). Рантайм по описанию создается текстура с нужным текстом. Текстура накладывается куда нужно. |
Ответ: Вопросы от новичка
Я когда-то тоже делал свой шрифт. Сделал ScriptableObject и сделал для него инспектор в котором была кнопочка импорта моего формата. Т.е. нажимал эту кнопочку, выбирал мой файл и его данные грузились в мой ассет, после чего файл можно было даже удалить) Хотя в билд он и не должен был попадать т.к. ссылок на него нету. Не очень удобно, но работало.
Я имел ввиду куда твой FontImport.ImportFont сохраняет загруженные данные? Просто в статическую ссылку? Или GO со шрифтом в сцене создает? [UPDATE] Подожди, OnPostprocessAllAssets вызывается в редакторе, а не на старте сцены? |
Ответ: Вопросы от новичка
Есть:
Код:
static public class CustomFonts Рантайм читаем сохраненный CustomFont и передаем его в Код:
static public class CreateGo Код:
public static Texture2D CreateTextToTexture(string text, Point textPos, Size textureSize, float scale, int lineSpacing) |
Ответ: Вопросы от новичка
Сейчас заметил, что если сделать редактор для TextAsset, то он полностью неактивен т.к. кнопки не жмутся, текст не вводится и весь он как белой пеленой покрыт.
Это так и должно быть? Что-то раньше не замечал. И я так понял в редакторе TextAsset нельзя изменить? |
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
Кстати, свою сериализацию можно сделать с помощью BinaryFormatter, который хорошо работает с полиморфизмом. А полученный массив байт сохранит уже сериализатор юнити. Только загружать\сохранять придется вручную.
Код:
public static T Load<T>(byte[] data) { Но может и к лучшему) Наверно лучше создавать свой формат, а не пользоваться сериализаторами. Буду теперь свой xml формат придумывать и писать для него import/export:) Только не пойму TextAsset редактировать вообще нельзя? |
Ответ: Вопросы от новичка
Цитата:
Код:
[CustomEditor(typeof(TextAsset))] |
Ответ: Вопросы от новичка
|
Ответ: Вопросы от новичка
seaman, так и знал, что gui где-то должно отключаться, но забыл где)
LLI.T.A.L.K.E.R., тут делают игры, а не ломают их. Кстати, конечно сцена там простая, но я сначала подумал, что то реальные фото) |
Ответ: Вопросы от новичка
|
Ответ: Вопросы от новичка
LLI.T.A.L.K.E.R Из вебсборки выдрать ресурсы достаточно легко. Из стендэлон нет. Если невмоготу - 3dripper в руки - и работать. Но вообще то такое и новичок может сам сделать. Ни моделек ни текстур крутых я там не увидел.
|
Ответ: Вопросы от новичка
seaman
|
Ответ: Вопросы от новичка
Машинка
Уверен, что это Вам не поможет. Быстренько только кошки родятся. Хотя сделать такую машинку нужно где-то полчаса работы. |
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
Добавил систему частиц командой: Create Other=>Particle System.
Настроил как мне нужно, сделал префаб. На этот префаб повешал скрипт. PHP код:
Однако когда префаб долетает до цели он не удаляется (в иерархии тоже), частицы продолжают генерироваться. Если же вместо системы частиц использовать другой префаб, например сделанный из модели, то всё работает как надо. Вопрос, почему так? Что не верно? |
Ответ: Вопросы от новичка
Может DestroyImmediate поможет?
Еще можно попробовать выключить партиклы перед удалением типа ParticleSystem.Stop |
Ответ: Вопросы от новичка
mauNgerS, ты уверен, что дестрой вызывается?
|
Ответ: Вопросы от новичка
Кстати,-да. Может размер объекта на котором частицы велик? Тогда расстояние до цели никогда не станет меньше targetDistanceMin. Вставьте дебаг рядом с destroy
|
Ответ: Вопросы от новичка
Спасибо, всё верно проблема была в расчёте дистанции.
Другой вопрос. Как в этом же скрипте использовать ParticleSystem.Stop, ParticleSystem.Play и т.д.? Чёт не получается. |
Ответ: Вопросы от новичка
mauNgerS, в смысле не получается?
Черт!!! Редактирование файла в юнити похоже никак не сделать. И все из-за того, что после сохранения файла через NET'овский класс File, юнити видет не оригинал, а свою кэшированную копию. А AssetDatabase.Refresh() просто виснет на моем измененном ассете. Да и если бы не вис, то долго работал. И мой способ сериализации почему-то не всегда работает. После компиляции любого скрипта все типы сбрасываются на родительский. |
Ответ: Вопросы от новичка
Цитата:
И ещё изменение прозрачности можно сделать только анимированной текстурой? Или есть параметр alpha? |
Ответ: Вопросы от новичка
Цитата:
Можно обращаться через particleEmitter и particleSystem. Понял почему у меня моя сериализация иногда сбрасывалась. Юнити после компиляции почему-то сбрасывает мой не сериализованный список. А мой редактор в OnDisable сериализует список. Вообщем черт знает как это все сделать. UPDATE Все разобрался. Пока все нормально. Достаточно загружать свою сериализацию в OnEnable скрипта ScriptableObject. А сохранять можно в OnDisable редактора. |
Ответ: Вопросы от новичка
2.Color (r , g , b , a) , где a- альфа
|
Ответ: Вопросы от новичка
Интересно как юнити определяет, что какой-то файл был изменен в браузере винды?
Как бы файл переписать, чтобы юнити это заметил и перекэшировал сам. Разобрался с сохранением файла. Все работает, если сохранять по нажатию кнопки, а не в OnDisable. Не очень хорошо т.к. можно забыть нажать на кнопку или тупо нечаянно переключится на другой объект и все потерять. Не понятно почему в OnDisable нельзя делать импорт файла. Код:
private void Save() { |
Ответ: Вопросы от новичка
Просьба не закидывать помидорами. Подскажите, пожалуйста, как выключить/включить светильник?
|
Ответ: Вопросы от новичка
PHP код:
|
Ответ: Вопросы от новичка
Pax, спасибо.
|
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
Вновь вопрос.
PHP код:
|
Ответ: Вопросы от новичка
hit.collider.gameObject.transform.rigidbody и т.д. )
|
Ответ: Вопросы от новичка
Можно ли к одному объекту прикрепить несколько звуков, которые могут проигрываться даже одновременно? Я что то запутался в аудиосорсах и аудиоклипах...)
К одному объекту можно прикрепить только один аудиосорс? Если несколько , то как их идентифицировать? Насколько я понял клип можно переприсвоить данному аудиосорсу в процессе игры - audio.clip = otherClip; а старый клип будет продолжать звучать? |
Ответ: Вопросы от новичка
А нету метода который бы округлял число не до ближайшего целого, а до какого-то числа кратного n?
Т.е. это result = x - x%n; Только в более элегантной форме? В Math столько перегрузок Round, но похоже все не то, что хотелось бы) |
Ответ: Вопросы от новичка
Через скрипт создаю несколько кубиков. Кубики - это клоны заранее сделанного префаба. На этом префабе висит скрипт управления.
Суть в том что при отнимании жизни кубик удаляется. Жизнь объявлена public static int boxlife=1; Отнимание жизни происходит в другом скрипте. Когда происходит отнимание жизни у нужного кубика, то жизнь отнимается сразу у всех кубиков, и все удаляются. Может ли быть причина в том что жизнь объявлена как static? |
Ответ: Вопросы от новичка
Morganolla
Самый простой способ. Но можно несколько AudioSource на один объект повесить для одновременного проигрывания. Цитата:
|
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
Цитата:
А вообще все что касается вэб плеера находится тут: http://docs.unity3d.com/Documentatio...eployment.html |
Ответ: Вопросы от новичка
Ну видимо до меня ну Очень туго доходит.
Дропбоксом не пользовался, попробовал через гугл диск, лажа какая-то. HTML открывается только на редактирование. Куда еще можно залить? |
Ответ: Вопросы от новичка
сейчас вроде новый обменник появился кроме дропбокса - mega, можно попробовать на нее. Дропбокс достаточно просто.
|
Ответ: Вопросы от новичка
DropBox для синхронизации, а не для сайтов и подобного. Там вроде бы есть ограничения трафика.
Кто-то писал, что это хороший сайт http://3owl.com/ |
Ответ: Вопросы от новичка
Проблема в цикле. Из-за него зависает unity при запуске игры
Код:
|
Ответ: Вопросы от новичка
Цитата:
UPD: показалось... Все еще жду помощи |
Ответ: Вопросы от новичка
Цитата:
Имхо: Если просто показать - лучше всего дропбокс. Если для распространения - или AssetStore, или Kongregate или свой выделенный/виртуальный сервер. |
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
Цитата:
Код:
#pragma strict |
Ответ: Вопросы от новичка
Цитата:
А на вопрос Вы не ответили - зачем в while? Один раз запустить анимацию - и пусть она сама воспроизводится. |
Ответ: Вопросы от новичка
вместо while - if
|
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
Код:
if(Input.GetKey(KeyCode.Space)) |
Ответ: Вопросы от новичка
Цитата:
Я может не понимаю механизма. Если даю ссыль на unity файл, то у некоторых открывается нормально. А вот ссыль на html не работает. Посмотрел на юнити.ру, там размещают юнити файл лежащий на дропбоксе, но насколько я понял у них веб плеер к сайту прикручен. |
Ответ: Вопросы от новичка
Вот такой скрипт:
PHP код:
Первый скрипт висит на одном объекте, второй на другом Проблема в том что оба объекта загружаются по ходу выполнения программы и клонов объектов много. Объекты со скриптом Box это цели, а с другим скриптом пули. Код который приведен выше даёт NullReferenceException: Object reference not set to an instance of an object Zipper.Update () (at Assets/Scripts/Zipper.cs:40) на эту строчку print (box.boxswith); Как вообще реализовать общение скриптов, когда много клонов объектов? |
Ответ: Вопросы от новичка
Если пули, через коллизию. Если в общем, по какому либо атрибуту, например по имени. Стрелять физическими пулями решение с огромным количеством проблем.
|
Ответ: Вопросы от новичка
Объекты по которым стреляю у меня статичны, я могу найти по позиции.
Но почему код приведённый выше вызывает ошибку. По идее он должен написать значение boxswith всех клонов. |
Ответ: Вопросы от новичка
не должен, т.к. GetComponent получает скрипт с текущего объекта
|
Ответ: Вопросы от новичка
Т.е. по ходу выполнения программы он пробегает по всем объектам, а доступ я получаю к скрипту объекта который был последним?
Как тогда выбрать нужные мне скрипт, ведь объекты отличаются только содержимым переменных в скрипте (жизнь, позиция). Или при создании объекта давать разные имена (ололо1, ололо2 ... и т.д.) Тогда как выбрать объект по имени? (помогите кодом) |
Ответ: Вопросы от новичка
Нет, скрипт Zipper принадлежит конкретному объекту, и GetComponent получает скрипты с этого объекта. По имени искать GemeObject.Find(), но может тебе что-то проще подойдет? Опиши задачу более подробно.
|
Ответ: Вопросы от новичка
Задача такая:
Объект Box на нём скрипт Box - это заранее сделанный префаб, клоны которого расставляются по карте GameObject inst = (GameObject)Instantiate(Resources.Load("Prefabs/Box", typeof(GameObject))); Затем игрок стреляет по этим клонам. При выстреле создаётся клон другого префаба GameObject inst = (GameObject)Instantiate(Resources.Load("Prefabs/Particles/Zipper", typeof(GameObject))); На объекте Zipper весит скрипт Zipper. При попадании в объект Box у Box отнимается жизнь (если ноль то удаляется) а объект Zipper удаляется. Объектов Box много и объектов Zipper много. Как хочу сделать (пока не получается) Zipper получает позицию Box. По позиции находится тот Box на который нацелен Zipper (объект Box статичен). При попадании у нужного Box отнимается жизнь. Когда я делал жизнь как static всё работало, только жизнь была одна на все Box... |
Ответ: Вопросы от новичка
Короче задача в момент выстрела или в момент попадания определить в какой Box попал. Попробуй почитать мой тутор про змейку. Там есть поедание еды через столкновение. Я думаю тебе похожий способ подойдет. Если определить можно в момент выстрела, то здесь поможет Raycast.
|
Ответ: Вопросы от новичка
Стрельни лучем, если игрок попал по цели, определяй время через которое пуля должна войти в цель, дальше два направления или через эту дельту времени инстансь пулю в точке, куда ты попал и через коллизию с целью вызывай логику или пускай пулю и с задержкой дельта вызывай на ней логику. Не знаю насколько динамичная у тебя сцена, и нужна ли видимость полета пули.
Up. Pax за тобой не успеешь)) |
Ответ: Вопросы от новичка
рах
попробовал применить audio.PlayClipAtPoint(clip, new Vector3(5, 1, 2)); выдается ошибка - Assets/aScripts/sAnimator.cs(269,23): error CS0176: Static member `UnityEngine.AudioSource.PlayClipAtPoint(UnityEngi ne.AudioClip, UnityEngine.Vector3)' cannot be accessed with an instance reference, qualify it with a type name instead В чем дело? |
Ответ: Вопросы от новичка
AudioSource добавил?
|
Часовой пояс GMT +4, время: 14:58. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot