Вопрос-[ответ] по Unity
| |
QWER56 | Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1 |
старожил
Сейчас нет на сайте
| Вопрос-[Ответ] по Unity3d
База скриптов Unity3d Курс Уроков по Unity 3D от Alcatraz
ConsMark - поисковик по интернет магазинам.
Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54 |
|
| |
Noterstone | Дата: Понедельник, 29 Октября 2018, 20:28 | Сообщение # 8681 |
участник
Сейчас нет на сайте
| Цитата Yanfire ( ) Просто тема игровых сохранений в отдельный файл - это для меня темный лес, т.к. я раньше вообще с ней не сталкивался. PlayerPrefs вполне хватало, но сейчас, нужен именно файл. Многие разработчики практикуют такое: сохранение делают в json формате и записывают его в стринг - стринг уже записывают в PlayerPrefs. Можно узнать необходимость сохранения в отдельный файл? Для опыта или для конкретной задачи?)
|
|
| |
Yanfire | Дата: Вторник, 30 Октября 2018, 16:56 | Сообщение # 8682 |
был не раз
Сейчас нет на сайте
| Цитата Noterstone ( ) Можно узнать необходимость сохранения в отдельный файл? Для опыта или для конкретной задачи?) И для того и для другого. Просто ранее мне хватало PlayerPrefs, т.к. надо было сохранить всего несколько параметров(кол-во монет, макс. рекорд ну и т.д.). Сейчас же у одного главного героя параметров 10, не считая координат и ротации. А помимо него нужно сохранять все параметры врагов, лута и т.д. Просто сохранение в отдельный файл позволяет проще сделать это. Вначале я пробовал делать, через бинарные файлы, но как-то не получалось, да и происходящие в коде манипуляции я с трудом понимал(почти не понимал), с json та же история. В xml все структурировано, понятно и компактно. Сделал уже все, кроме непосредственно присвоения записанных значений.Добавлено (03 Ноября 2018, 20:15) --------------------------------------------- Ребят осталась одна проблема в процессе сохранения. Точнее загрузки сохранения.
Вообщем, когда игра загружается, создаётся персонаж из папки где хранятся префабы загружаемых объектов и получает сохраненные значения. Но у персонажа есть куча разных переменных по типу: иконка HP, экран смерти и т.д. Их можно без проблем повесить на персонажа в редакторе и при первом запуске сцены, все будет работать, но при загрузке сохранения создаётся персонаж из префаба, у которого поля с этими переменными пустые и следовательно игра крашиться.
Я начал делать инициализацию этих объектов в старте , с помощью поиска по тегу (FindGameObjectWithTag), но вот проблема: например с иконкой HP, все работает, т.к. она всегда активна, а например экран смерти активируется только при смерти персонажа, и поэтому все остальное время неактивен и отказывается инициализироваться.
Внимание вопрос: Как инициализировать неактивные объекты на сцене?
Сообщение отредактировал Yanfire - Вторник, 30 Октября 2018, 16:57 |
|
| |
vampir0305 | Дата: Суббота, 03 Ноября 2018, 20:36 | Сообщение # 8683 |
Unity C# Programmer
Сейчас нет на сайте
| Yanfire, Очень просто. Создаёшь в сцене объект "Контроллер" с тегом "Controller" в который все нужные префабы, иконки и т.д. засовываешь. Когда игрок создался, он находит по тегу этот "Контроллер" и его значения присваивает в свои. Или наоборот, контроллер находит игрока и свои значения передаёт ему. Пример: Controller
Код public GameObject ikonkaHP; В Start игрока:
Код public GameObject ikonkaHP;
controller = GameObject.FindGameObjectWithTag("Controller").GetComponent<Script>(); ikonkaHP = controller.ikonkaHP;
Красочная сюжетно-ориентированная игра-головоломка
|
|
| |
ZeroCool | Дата: Понедельник, 26 Ноября 2018, 16:25 | Сообщение # 8684 |
почетный гость
Сейчас нет на сайте
| А что стандартные ассеты в новой версии выпилили? Или сейчас как то по другому? К примеру куда подевался фёрст персон плеер со всем настроенным? Деревья там, блики солнца, шейдеры, да много чего интересного было.
|
|
| |
seaman | Дата: Пятница, 30 Ноября 2018, 21:13 | Сообщение # 8685 |
старожил
Сейчас нет на сайте
| Когда качаешь Юнити не забывай соответствующие галочки ставить...
|
|
| |
ZeroCool | Дата: Вторник, 04 Декабря 2018, 13:27 | Сообщение # 8686 |
почетный гость
Сейчас нет на сайте
| Цитата seaman ( ) Когда качаешь Юнити не забывай соответствующие галочки ставить... Так как раз в новой версии(не бета) ассеты отсутствуют. а в предыдущей есть.
|
|
| |
drcrack | Дата: Вторник, 04 Декабря 2018, 14:12 | Сообщение # 8687 |
старожил
Сейчас нет на сайте
| в новых версиях они вроде в window → package manager переехали и ставятся куда-то отдельно, не в папку проекта
|
|
| |
zrt56 | Дата: Суббота, 26 Января 2019, 22:06 | Сообщение # 8688 |
уже был
Сейчас нет на сайте
| Подскажите, пожалуйста! Есть куб , через него проходят объекты, за это начисляются монеты, как их переделать в другой скрипт, на другом объекте?
|
|
| |
web_sstas | Дата: Воскресенье, 27 Января 2019, 08:20 | Сообщение # 8689 |
частый гость
Сейчас нет на сайте
| zrt56, примерно так, Код OtherScript os = GameObject.FindGameObjectWithTag("OtherObject").GetComponent<OtherScript>(); void OnTriggerEnter(Collider other){ os.AddCoin(); }
|
|
| |
mr_carlos0000 | Дата: Четверг, 31 Января 2019, 15:48 | Сообщение # 8690 |
уже был
Сейчас нет на сайте
| нужна помощь в написании скрипта для сбора ресурсов юнитами необходимо чтобы юниты собирали-добывали указанный ресурс при выделении одного или нескольких юнитов он или они шли например к дереву и рубили его или к шахте и таскали золото в замок как в WarCraft 3
|
|
| |
drcrack | Дата: Четверг, 31 Января 2019, 16:17 | Сообщение # 8691 |
старожил
Сейчас нет на сайте
| чет походу тебе не помощь нужна а человек который за тебя напишет игру
|
|
| |
mr_carlos0000 | Дата: Четверг, 31 Января 2019, 16:19 | Сообщение # 8692 |
уже был
Сейчас нет на сайте
| блин я просто даже не знаю как написать этот скрипт
|
|
| |
drcrack | Дата: Четверг, 31 Января 2019, 16:21 | Сообщение # 8693 |
старожил
Сейчас нет на сайте
| да там не один скрипт нужен а десять, с таким опытом на варкрафт 3 рановато замахиваться напиши тетрис для начала или книжку какую почитай это тема для конкретных вопросов, а не "как сделать игру"
|
|
| |
t111 | Дата: Суббота, 02 Февраля 2019, 19:21 | Сообщение # 8694 |
почетный гость
Сейчас нет на сайте
| Здравствуйте. Мне нужна помощь, как в юнити реализовать перемотку видео в обратную сторону? Например, если жму Влево, то назад играет, если Вправо, то вперед. Попытался при нажатии Влево убавлять кадры (videoplayer.frame --) , работает, но рывками. В мануале написано что это можно реализовать в юнити напрямую, но не на всех платформах. Скажите, кто знает, о каких платформах идет речь? Делаю на комп, мощнее и не придумаешь. Может речь о формате видео? Тогда, какого формата оно должно быть? Еще есть вариант один, загрузить одно видео нормальное и одно уже с воспроизведением в обратную сторону, начать их вместе проигрывать, и в нужный момент переключать видимость видео в сцене, но не могу додумать, как реализовать, чтобы именно начиналась отмотка с того же самого кадра,ведь видео идут в рассихрон.
как известно, встречают по одежке, а провожают uninstall'ом"
|
|
| |
drcrack | Дата: Суббота, 02 Февраля 2019, 20:08 | Сообщение # 8695 |
старожил
Сейчас нет на сайте
| Цитата Еще есть вариант один, загрузить одно видео нормальное и одно уже с воспроизведением в обратную сторону, начать их вместе проигрывать, и в нужный момент переключать видимость видео в сцене, но не могу додумать, как реализовать, чтобы именно начиналась отмотка с того же самого кадра,ведь видео идут в рассихрон. мне это кажется наиболее универсальным способом, потому что кодировка современных форматов предполагает хранение ключевых кадров раз в скока-то секунд и дальше только дельты от прошлого кадра — поэтому чтобы играть видео назад, нужно искать предыдущий ключевой кадр а потом применять все дельты до того кадра который тебе нужен, это очень медленно и плюс как мне кажеца (не спец по видео) тут еще и аппаратное ускорение нормально не работает
Сообщение отредактировал drcrack - Суббота, 02 Февраля 2019, 20:09 |
|
| |
DonakiDijunk | Дата: Воскресенье, 10 Февраля 2019, 13:57 | Сообщение # 8696 |
был не раз
Сейчас нет на сайте
| Подскажите, в чем ошибка? isGrounded выдает false на поверхностях с любым типом коллизий.
Код public class HeroMove : MonoBehaviour {
CharacterController HeroCharacter; public float MinimalWalkSpeed, MaximalWalkSpeed; private float Speed; private float _gravity;
void Start () { HeroCharacter = GetComponent<CharacterController>(); //Прописываем скорости минимальное значение; Speed = MinimalWalkSpeed; } void Update () { MoveHero(); GravityCheck(); //Debug.Log(Speed); Debug.Log(HeroCharacter.isGrounded); } void GravityCheck(){ //Гравитация; HeroCharacter.transform.position -= Vector3.down * _gravity; if(!HeroCharacter.isGrounded){ _gravity -= 0.01f * Time.deltaTime; } if(HeroCharacter.isGrounded){ _gravity = 0.0f; } } void MoveHero() { //Ускорение с минимальной скорости, до максимальной; if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.D)){ if (Speed < MaximalWalkSpeed){ Speed+= 0.7f*Time.deltaTime; } } //Бинд клавиш и движения; if (Input.GetKey(KeyCode.W)){ HeroCharacter.transform.position += HeroCharacter.transform.forward * Speed * Time.deltaTime; } if (Input.GetKey(KeyCode.S)){ HeroCharacter.transform.position -= HeroCharacter.transform.forward * Speed * Time.deltaTime; } if (Input.GetKey(KeyCode.A)){ HeroCharacter.transform.position -= HeroCharacter.transform.right * Speed * Time.deltaTime; } if (Input.GetKey(KeyCode.D)){ HeroCharacter.transform.position += HeroCharacter.transform.right * Speed * Time.deltaTime; } } }
Как только не менял, но все равно пролетает сквозь объекты любым типом коллайдеров.
Сообщение отредактировал DonakiDijunk - Воскресенье, 10 Февраля 2019, 13:59 |
|
| |
SkorpyX | Дата: Воскресенье, 10 Февраля 2019, 19:39 | Сообщение # 8697 |
участник
Сейчас нет на сайте
| DonakiDijunk, CharacterController следует двигать через Move(...) или SimpleMove(...).
|
|
| |
DonakiDijunk | Дата: Воскресенье, 10 Февраля 2019, 21:29 | Сообщение # 8698 |
был не раз
Сейчас нет на сайте
| Цитата SkorpyX ( ) DonakiDijunk, CharacterController следует двигать через Move(...) или SimpleMove(...). Поправил, все равно false.
|
|
| |
drcrack | Дата: Воскресенье, 10 Февраля 2019, 22:08 | Сообщение # 8699 |
старожил
Сейчас нет на сайте
| isGrounded нормально не работал вообще никогда, не работает и сейчас, нужно писать свою проверку
|
|
| |
Irbis | Дата: Понедельник, 11 Февраля 2019, 09:42 | Сообщение # 8700 |
почетный гость
Сейчас нет на сайте
| Заменил в вашем скрипте
Код void GravityCheck(){ //Гравитация; HeroCharacter.transform.position -= Vector3.down * _gravity; if(!HeroCharacter.isGrounded){ _gravity -= 0.01f * Time.deltaTime; } if(HeroCharacter.isGrounded){ _gravity = 0.0f; } } на
Код void GravityCheck() { //Гравитация; if(!HeroCharacter.isGrounded) { _gravity -= 0.01f * Time.deltaTime; HeroCharacter.Move(Vector3.up * _gravity); } else { _gravity = 0.0f; } } и все заработало. Перемещение тоже, конечно, надо поменять аналогичным образом.
Сообщение отредактировал Irbis - Понедельник, 11 Февраля 2019, 09:47 |
|
| |
|