Воскресенье, 24 Ноября 2024, 14:28

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Результаты поиска
Nordicus666Дата: Пятница, 24 Марта 2017, 17:36 | Сообщение # 1 | Тема: Программирование редактора Unity
был не раз
Сейчас нет на сайте
а сами команды скрытия и показывания переменных с точки зрения Editor как выглядят?
Nordicus666Дата: Пятница, 24 Марта 2017, 15:29 | Сообщение # 2 | Тема: Программирование редактора Unity
был не раз
Сейчас нет на сайте
сам не особо разбираюсь, потому нужен скрипт с пояснениями, либо подробные объяснения либо ссылки на статьи с ответом на мой вопрос
каким образом из Editor скрипта сделать скрытие и показывание в инспекторе определенных переменных в зависимости от еще одной переменном в текущем скрипте?
имеется скрипт, в нем есть много-много переменных и одна переменная Type, надо что бы в инспекторе показывались только определенные и скрывались остальные в зависимости от Type
Nordicus666Дата: Среда, 22 Марта 2017, 17:05 | Сообщение # 3 | Тема: Поля скриптов
был не раз
Сейчас нет на сайте
Нашел MemberwiseClone(), полностью подходит, но нету на Юнити, облоооом

Добавлено (22 марта 2017, 16:29)
---------------------------------------------
Все, разобрался, оказывается memberwiseclone просто нельзя использовать в совокупности с чужими скриптами, добавил в родительский метод, возвращающий поверхностную копию себя же, все вроде работает, огромное спасибо, даже не за решение, а за реально полезное знание)

Добавлено (22 марта 2017, 16:41)
---------------------------------------------
Хотя нет, не работает, он копирует только скрипт-родителя (хоть и написано почему то, что это дочерний скрипт (по типу)), но ни его методов, ни его полей (точнее они есть, но почему то равны нулю), еще идеи?

Добавлено (22 марта 2017, 17:05)
---------------------------------------------
Попытался через написание пустого виртуального метода в родителе и его переопределение в дочернем скрипте - не помогло, код такой:
родительский:
Public virtual Spell clone()
{
return null;
}
дочерний:
Public override Spell clone()
{
return this.memberwiseclone();
}

у дочернего сделать не-Spell не могу, ибо обращаться из скрипта который вообще производит все эти манипуляции я могу только так (ибо спеллов разных дофига, у каждого свой скрипт, их надо как то объединить, вот они и наследуются от Spell, через который я и работаю)

Nordicus666Дата: Среда, 22 Марта 2017, 15:06 | Сообщение # 4 | Тема: Поля скриптов
был не раз
Сейчас нет на сайте
При создании нового экземпляра скрипта и добавлении его в объект, нужно что бы поля созданного скрипта были такие же как и в другом (доступ есть, т.е. сама команда нужна, если такая есть, которая позволит присвоить все поля одного скрипта всем полям другого)
сразу уточню, что б не писали лишнего:
1) Script = script не сработает, ибо таким образом только ссылка передается, а я сразу после вышеописанного удаляю объект, в котором лежит скрипт, из которого надо взять поля
2) Добавить в объект поле скрипта не сработает, ибо AddComponent работает только с типами, т.е. я могу добавить только чистый, изначальный скрипт, какой он есть в ассетах.

Добавлено (22 марта 2017, 15:06)
---------------------------------------------
так же делать внутри скрипта метод (типа что бы все поля передаваемого экземпляра скрипта присваивались конечному) тоже не вариант, ибо создается у меня как экземпляр скрипта spell, но внутри переменной только его наследователи, следовательно писать для каждого наследственного скрипта данную функцию - маразм (а таких (хоть сейчас и не много) потом будет дофига)

Nordicus666Дата: Вторник, 21 Марта 2017, 13:25 | Сообщение # 5 | Тема: Animator автоматические переходы
был не раз
Сейчас нет на сайте
Можно ли как то сделать (без доп скриптов, кодинга, ибо маразм для такой задачи писать и делать контроллерский скрипт, точнее не маразм, а костыль), что бы при окончании одной (незацикленной)(возможно я что то путаю, заодно можете написать где галочка, отвечающая за то, зацикленная она или нет) анимации шло сразу к следующей, к которой, соответственно, идет связь (Transition, стрелка в аниматоре)

Добавлено (21 марта 2017, 13:23)
---------------------------------------------
Случайно потыкав галочки в связи вроде получилось, не знаю как и почему, но получилось, можете объяснить, что делает и как работает "HasExitTime" с его последующими настройками?

Добавлено (21 марта 2017, 13:25)
---------------------------------------------
А так же что делает exit в аниматоре (any state знаю, а exit нет)
:D

Nordicus666Дата: Понедельник, 20 Марта 2017, 18:54 | Сообщение # 6 | Тема: Ошибка NullReferenceException
был не раз
Сейчас нет на сайте
Смотри: дело не в этом скрипте, дело в том, что когда ты делаешь gameover = findObjectOfType<...>(); у тебя в gameover записывается, по простому этот скрипт (а вообще ссылка на него) и ты можешь через эту переменную сразу обращаться к этому скрипту (ну в том же и суть функции findobjectoftype()), но если эта функция (так написано в ее описании, вроде (я её сопоставляю с GetComponent<>() и подобными)) не находит то что ты хочешь, она возвращает null и в переменную соответственно тоже записывается null, а не этот скрипт, и когда ты пытаешься вызвать его функцию, ты пытаешься вызвать функцию "у ничего", у null, ествественно тебе и выдает ошибку nullreferenceexeption - в дословном переводе: Пустота ссылка ошибка, т.е. ошибка пустой ссылки
знаю, пишу много и однообразного, но я первый раз кому то помогаю вообще, а так же просто пытаюсь разными путями одно и то же объяснить для удобства :DD

Добавлено (20 марта 2017, 18:54)
---------------------------------------------
Возможно твой GameOverScript нигде не лежит (т.е. его нет ни в одном объекте на сцене) и как следствие FindObjectOfType его не находит

Nordicus666Дата: Понедельник, 20 Марта 2017, 18:13 | Сообщение # 7 | Тема: Ошибка NullReferenceException
был не раз
Сейчас нет на сайте
Reference - ссылка, у тебя в методе OnDestroy, когда ты пытаешься взаимодействовать с gameover (gameover.showbuttons) выходит так, что обращаешься к переменной с null внутри (исходя из текста ошибки), следовательно, когда ты создаешь переменную и запихиваешь в нее FindObjectOfType<GameOverScript>(), то этот findobject ничего не возвращает, следовательно он ничего не находит
вывод: FindObjectOfType<GameOverScript>() не находит GameOverScript, ничего не возвращает, в переменной null, ты пытаешься с ней взаимодействовать, вылетает ошибка.
Nordicus666Дата: Понедельник, 20 Марта 2017, 17:31 | Сообщение # 8 | Тема: Взаимодействие двух Rigidbody. Функции и работа с Animator
был не раз
Сейчас нет на сайте
Здравствуйте, снова. имеется две проблемы.

первая:
вкратце:
Нужно что бы Rigidbody игрока не двигал другие rigidbody (не с помощью большой разницы масс)
подробно:
гугл не помог, вообще ничего не говорит по моей теме (все что нашел - противоположную проблему, что кто то использует какой то стандартный скрипт управления персонажем и тот не воздействует на другие rigidbody при движении), ситуация такая: есть игрок, с коллайдером (не триггером) и с rigidbody, из скрипта движение происходит с помощью Rigidbody.velocity, но при этом таким образом игрок будет двигать другие объекты с Rigidbody (динамические, конечно же), а мне надо сделать так, что бы игрок двигать не мог, но могли двигать игрока эти самые объекты, в каких то ситуациях. К огромной разнице масс прибегать нельзя, пробовал, ибо к примеру, что происходит в такой ситуации: есть заклинание, создающее вакуум в точке (проще говоря создает триггер, который в области всем Rigidbody добавляет силу в направлении центра вакуума), надо что б заклинание двигало и объекты с rigidbody и игрока, соответственно тоже, но если делать большую разницу масс, то получается что тем же ящиком можно запихнуть с помощью этого заклинания себя в стену (без rigidbody) и оттуда уже не вылезти (да и вовсе странно, что игрок наполовину в ящике, наполовину в стене, ужас просто)
если это можно как то решить (изменить метод движения игрока - не проблема почти, хотя не желательно (имеется хорошая иерархия скриптов, много изменять врят ли придется)), то скажите как это можно сделать, пожалуйста.
если что, все это в 2D

вторая:
гугл (опять же, иначе не писал бы сюда) не помог, суть в следующем: есть некая анимация (смена sprite-ов со временем), надо что б в аниматоре, при входе в эту анимацию, проигрывалось её начало, шло дальше, а когда доходило до конца анимации начинало не с самого начала, а с какого то определенного кадра (в моем случае ситуация такая - есть рунный круг, в момент начала анимации от него исходит и расходится волна, далее он просто переливается, так вот это надо в одну анимацию (если можно не через одну и удобно сделать, то объясните, пожалуйста, как) и что бы зацикливалась только часть с переливанием).

заранее благодарю за всю полезную информацию и ссылки.

Добавлено (20 марта 2017, 17:31)
---------------------------------------------
еще видел какие то упоминания про скриптинг анимаций (тип как аниматор, только вручную) если такое возможно, то подскажите, как это сделать или опять же скиньте ссылки, ибо найти-не нашел, но кажется, что может помощь (учитывая архитектурную сложность анимаций, если делать через аниматор, а через код можно было б проще)

Nordicus666Дата: Воскресенье, 19 Марта 2017, 08:49 | Сообщение # 9 | Тема: Взаимодействие Rigidbody игрока и объектов мира
был не раз
Сейчас нет на сайте
проблема вкратце:
Нужно что бы Rigidbody игрока не двигал другие rigidbody (не с помощью большой разницы масс)
проблема подробно:
Здравствуйте, гугл не помог, вообще ничего не говорит по моей теме (все что нашел - противоположную проблему, что кто то использует какой то стандартный скрипт управления персонажем и тот не воздействует на другие rigidbody при движении), ситуация такая: есть игрок, с коллайдером (не триггером) и с rigidbody, из скрипта движение происходит с помощью Rigidbody.velocity, но при этом таким образом игрок будет двигать другие объекты с Rigidbody (динамические, конечно же), а мне надо сделать так, что бы игрок двигать не мог, но могли двигать игрока эти самые объекты, в каких то ситуациях. К огромной разнице масс прибегать нельзя, пробовал, ибо к примеру, что происходит в такой ситуации: есть заклинание, создающее вакуум в точке (проще говоря создает триггер, который в области всем Rigidbody добавляет силу в направлении центра вакуума), надо что б заклинание двигало и объекты с rigidbody и игрока, соответственно тоже, но если делать большую разницу масс, то получается что тем же ящиком можно запихнуть с помощью этого заклинания себя в стену (без rigidbody) и оттуда уже не вылезти (да и вовсе странно, что игрок наполовину в ящике, наполовину в стене, ужас просто)
если это можно как то решить (изменить метод движения игрока - не проблема почти, хотя не желательно (имеется хорошая иерархия скриптов, много изменять врят ли придется)), то скажите как это можно сделать, пожалуйста.

Добавлено (19 марта 2017, 08:49)
---------------------------------------------
забыл упомянуть: это 2D

Nordicus666Дата: Суббота, 18 Марта 2017, 19:34 | Сообщение # 10 | Тема: Использование Prefab'ов как в ООП
был не раз
Сейчас нет на сайте
Цитата Ranger ()
link

Весьма и весьма благодарен
Nordicus666Дата: Суббота, 18 Марта 2017, 17:05 | Сообщение # 11 | Тема: Использование Prefab'ов как в ООП
был не раз
Сейчас нет на сайте
Цитата dreenline ()

public class prefabManager{
public GameObject myPrefab1;
public GameObject myPrefab2;
}

Очень интересная идея, весьма благодарен, попробую, но только тут вопрос есть: менеджер префабов - скрипт, т.е. на сцене надо будет создавать пустой объект с этим скриптом, ок, но получается его надо пихать в каждую сцену?
Цитата EchoIT ()
Resources.Load как вариант.

а можно подробнее? или ссылку на информацию? просто сейчас по времени ограничен, не могу сам гуглить (ибо это долго, а проект фигачить то надо :D)
Nordicus666Дата: Суббота, 18 Марта 2017, 16:37 | Сообщение # 12 | Тема: Использование Prefab'ов как в ООП
был не раз
Сейчас нет на сайте
С префабами не до конца разбираюсь, сколько гайды и туториалы не читаю, все схоже с ООП (c# знаю отлично, в том числе и ООП), но вот появляется проблемка:
имеется скрипт, который изначально в игре не присутствует, его экземпляры только иногда появляются в объектах на сцене (т.е. другие скрипты то добавляют этот скрипт, то удаляют из объекта), я не могу из этого скрипта заспавнить префаб, ибо нужна ссылка (т.е. создать переменную, в нее передать префаб), но это можно сделать только когда скрипт уже висит в объекте, основной вопрос: как заспавнить экземпляр префаба без ссылки? (обычно в гайдах пишут типа того: Public Transform myPrefab; (и далее где то в коде) Instantiate(myPrefab, ...);, а мне бы просто по названию префаба работать, т.е.: (в файлах проекта есть префаб Fireball) instantiate(Fireball, ...) или что то подобное.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг