Результаты поиска
| |
GantZ_Yaka | Дата: Вторник, 26 Августа 2014, 08:31 | Сообщение # 21 | Тема: Вопрос-[ответ] по Unity |
почетный гость
Сейчас нет на сайте
| polous, логично предположить, что необходим контроль за событиями со стороны отдельным скриптом либо связями внутри скриптов.
|
|
| |
GantZ_Yaka | Дата: Понедельник, 25 Августа 2014, 23:54 | Сообщение # 22 | Тема: Присоединение объекта к кости скриптом |
почетный гость
Сейчас нет на сайте
| transform.parent
|
|
| |
GantZ_Yaka | Дата: Суббота, 23 Августа 2014, 23:15 | Сообщение # 23 | Тема: Вопрос-[ответ] по Unity |
почетный гость
Сейчас нет на сайте
| А вот не надо в апдейте бесконечно искать и добавлять объект House в сцене Совать в список объект надо лишь один раз - при его создании. Лучше всего это сделать скриптом на префабе объекта House, где в старте прописать поиск объекта, который хранит этот список, и занесение в его список ссылку на себя.
|
|
| |
GantZ_Yaka | Дата: Суббота, 23 Августа 2014, 21:22 | Сообщение # 24 | Тема: Вопрос-[ответ] по Unity |
почетный гость
Сейчас нет на сайте
| Adom, Код House = new Transform[10]; У массивов изменить размер можно занова его создав, предыдущие значения элементов при этом потеряются. Если предполагается часто менять количество элементов, лучше пользоваться списками List (using System.Collections.Generic)
|
|
| |
GantZ_Yaka | Дата: Пятница, 08 Августа 2014, 06:53 | Сообщение # 25 | Тема: Вопрос-[ответ] по Unity |
почетный гость
Сейчас нет на сайте
| Fr0sT, потестил сцену с 500ми ботами, чтоб не было тормозов, нужно вырубать рендер объектов, которые не видны, а не анимации. В stats показывает все активные компоненты Animation в сцене, если их на объектах отключать - не будет показывать, но на производительность влияет слабо.
|
|
| |
GantZ_Yaka | Дата: Вторник, 29 Июля 2014, 08:00 | Сообщение # 26 | Тема: Учет попадания в голову, Photon Server, Защита от читов |
почетный гость
Сейчас нет на сайте
| Если сервер не будет "знать карту", то многих читов не избежать, игроки смогут летать, носиться на сверхскоростях, проходить сквозь стены - все, что угодно. Если сервер знает позиции игроков, пусть сам и вычисляет позиции их голов. Когда игрок стреляет, пусть передаёт серверу данные своего луча, а тот уже проверяет - попадает ли луч в голову. Правда так появится прострел сквозь стены.
|
|
| |
GantZ_Yaka | Дата: Суббота, 26 Июля 2014, 23:22 | Сообщение # 27 | Тема: Проблема с PUN |
почетный гость
Сейчас нет на сайте
| Можно задать в префабе поле для скрипта (public GameTime GameTimeScript;) и здесь же прописать в Start() эту самую проверку на isMine. Если isMine - ищи скрипт в сцене, пихай его в поле, если нет - не ищи, поле останется null. И там, где спавнящийся игрок обращается к этому скрипту сделать проверку: если GameTimeScript != null, значит объект - твой, все ок, можем туда залезть; если == null, значит объект чужой, никуда не лезем. А смысл имеет перевесить скрипт с на объект в том случае, если в нем хранится индивидуальная информация, которую необходимо синхронизировать между игроками (HP, MP и т.д.). Если же он влияет только на управление персонажем - то не обязательно.
|
|
| |
GantZ_Yaka | Дата: Пятница, 25 Июля 2014, 19:21 | Сообщение # 28 | Тема: Сбились настройки Input |
почетный гость
Сейчас нет на сайте
|
|
|
| |
GantZ_Yaka | Дата: Пятница, 25 Июля 2014, 19:09 | Сообщение # 29 | Тема: Вопрос-[ответ] по Unity |
почетный гость
Сейчас нет на сайте
| JonLivingston, можно попробовать в кадре, с которого должна проигрывается анимация, добавить ключи анимации для каждой кости в 3d редакторе.
|
|
| |
GantZ_Yaka | Дата: Четверг, 24 Июля 2014, 20:35 | Сообщение # 30 | Тема: Вопрос-[ответ] по Unity |
почетный гость
Сейчас нет на сайте
| Fr0sT, из всех систем видимости, что я тестил (в т.ч. и встроенный culling в unity), мне больше всего понравилась M2H Culling (она free и писалась довольно давно, но работает славно). Там ничего мудреного нет, в отличие от конкурентов, она не пускает лучи из камеры, не нужно на объекты вешать всякие теги, слои, коллайдеры. Просто расставляешь в сцене области видимости (area или кубики) и указываешь в выпадающих списках в какой области какие области видеть, а какие не видеть, и все. Дальше скрипты все сделают сами. Для расчета нахождения игрока и объектов в областях используются габариты объектов (bounds), что систему нагружает по минимуму. Добавлю еще, из личных тестов находил слабые места в производительности так: во время запущенной игры по очереди отключаешь объекты в сцене (целиком, вместе со скриптами) и смотришь как это влияет на fps в статистике - можно так быстро и легко выявлять слабые места, нередко бывает, что не очень хорошо написанные скрипты с кучей поисков объектов по тегу или просто перегруженным Update всякими расчетами нехило кушает fps. Далее, все недвижимые объекты должны быть static (галочка в инспекторе) и должен быть включен static batching. На некоторых объектах имеет смысл отключать recieve shadow и cast shadow, об едином меше у объектов с одним материалом стоит думать заранее в 3d-реедакторе, и делать так везде, где есть возможность. У камеры снизить до приемлимого минимума дальность видимости. Постараться избавиться от использования в системах частиц своих собственных мешей - нехило грузит тоже. Ну а основное, чему стоит уделить внимание - это все те же mesh renderer, skinned mesh renderer и т.п. на объектах, которые если вовремя отключать, дают хороший прирост к производительности.
|
|
| |
GantZ_Yaka | Дата: Среда, 23 Июля 2014, 19:31 | Сообщение # 31 | Тема: Вопрос-[ответ] по Unity |
почетный гость
Сейчас нет на сайте
| Цитата Vip_and_Rip ( ) Но тут проблема - в скрипте могу прописать только по одной точке координат можно попробовать сделать отдельный dont destroy скрипт для управления переходами между локациями, который бы и запускал loadlevel, вызывают запуски в нем пусть триггеры, расставленные в сценах, передавая текущее местонахождение игрока и название следующей сцены, которую надо загрузить. А в управляющем скрипте бы производилась выборка, в какую точку игрока кидать после загрузки, например можно использовать словарь (dictionary), где ключ будет string - название места триггера, а соответствующее ключу значение - transform, - кубик, точка спавна. Из локации ПЕЩЕРА, например, выходишь в локацию МИР - в скрипте вызывается загрузка уровня МИР а потом поиск по словарю ключа ПЕЩЕРА, и смотрим соответствующее значение - координату спавна.
Сообщение отредактировал GantZ_Yaka - Среда, 23 Июля 2014, 19:31 |
|
| |
GantZ_Yaka | Дата: Понедельник, 21 Июля 2014, 18:50 | Сообщение # 32 | Тема: Проблема с поворотом объекта |
почетный гость
Сейчас нет на сайте
| Для таких задач знать один конечный угол недостаточно, - нужно еще находить кротчайший путь поворота к этому углу, для этого определять в какой "четверти" относительно системы координат персонажа находится цель, оттуда уже узнавать в какую сторону его вращать и каким должен получиться знак. Решал похожую задачу в навигации на мини-карте.
Сообщение отредактировал GantZ_Yaka - Понедельник, 21 Июля 2014, 18:51 |
|
| |
GantZ_Yaka | Дата: Четверг, 17 Июля 2014, 08:23 | Сообщение # 33 | Тема: Вопрос-[ответ] по Unity |
почетный гость
Сейчас нет на сайте
| Цитата beril ( ) Можно ли сделать так, что бы когда запустил приложение в инспекторе, при изменении значений переменных, они сохранялись после того когда останавливаешь игру? правым кликом по скрипту, где менял значения, "copy Component". После остановки игры, кликаем по нему же и "paste component as values".
|
|
| |
GantZ_Yaka | Дата: Вторник, 10 Июня 2014, 21:02 | Сообщение # 34 | Тема: Вопрос-[ответ] по Unity |
почетный гость
Сейчас нет на сайте
| DantorS, Полагаю на ботах и игроке должны висеть разные скрипты управления. Если открывает дверь бот, то пусть даже не смотрит, открывал ли её кто-нибудь другой, никакой паники не создает. Вообще, я описал способ складирования и управления информацией о всех внутриигровых активных объектах. А как её будут использовать боты/игроки/сами объекты - зависит о того, что где и как будет использоваться, какими ты сам захочешь эти взаимодействия делать.Добавлено (10.06.2014, 21:02) ---------------------------------------------
Цитата IlyaGolubtsov ( ) Столкнулся с проблемой,помогите пожалуйста)Для анимации персонажа для онлайн шутера отображаю разными слоями-для "нашей" камеры анимированые руки на капсуле(как в видио-уроках ),для других игроков анимированый Biped (сделал в 3ds max).Когда мы прицеливаемся вниз или вверх другие игроки должны видеть движение рук вверх и вниз.Для этого я в иерархии положил кости рук в объект со скриптом управляющим вращением.Но в этом случае у костей отключается анимация(руки не будут перезаряжать оружие или выполнять какие либо действия,а хотелось чтобы это видели и другие игроки).Пока я вижу один вариант-проанимировать руки Biped во всех возможных случаях(присед,бег,лёжа) и воспроизводить при движении вверх вверх и назад при взгляде камеры вниз.Может есть другие варианты(может можно как-то отдельно воспроизводить анимации для ног и для рук?),подскажите пожалуйста Присоединяюсь к вопросу, кто знает, как можно отдельно пошевелить скриптом кость в анимированном и проигрывающим анимацию бипеде?
|
|
| |
GantZ_Yaka | Дата: Вторник, 10 Июня 2014, 20:01 | Сообщение # 35 | Тема: Вопрос-[ответ] по Unity |
почетный гость
Сейчас нет на сайте
| Цитата DantorS ( ) В общем пишу ai. Остановился на дверях. Если один бот закрыл дверь, но гг открыл дверь и бот увидил открытую дверь (которую именно он закрывал) то и просходит некое действие. Для остальных ботов тоже самое (именно ими закрытые двери). Нельзя сделать как-нибудь автономно или для каждого нужен свой скрипт, тег, массив? Цитата DantorS ( ) У меня есть игра. У меня есть боты. И есть объъекты с котрыми могут взаимодействовать боты. С теми объектами с которыми уже 1 бот взаимодействовал хочу произвести некое действие (через скрипт). Как в этом скрипте я могу обратиться к объектам с котрым взаимодействовал 1 бот? Может быть можно как-нибудь с масивами повозиться? Я бы сделал так (возможно и не проще, но более гибко для дальнейших надстроек и применения): 1)все активные объекты разбить на группы по фунционалу и тегами отметить их тип (аптечки, двери, пулеметы, кнопки и пр. ), 2)создать для каждого типа объекта свой скрипт (аптечка_скрипт, дерь_скрипт и т.д.), развесить их также по объектам. 3)внутри скриптов задать публичные переменные (аптечка: есть зараяд/нет задаряда, дверь можно открыть-нельзя, пулемет-активен/поломан/количество патронов и т.д.) 4)внутри скриптов задать публичную переменную, которая будет хранить уникальный ID объекта. (public int id) 4)При старте в едином скрипте для всей сцены собираем все вышеупомянутые скрипты в список через поиск объектов по тегам (кэшируем один раз, чтоб больше не делать вобще никаких поисков в апдейте, + к производительности) например: Код public List<Телефон_скрипт> список_телефонов = List<Телефон_скрипт>();
void Start(){
GameObject[] gos = GameObject.FindGameObjectsWithTag("телефон");
int i = 0 foreach (GameObject go in gos) { список_телефонов.Add(go.GetComponent<Телефон_скрипт>()); //всовываем в список объектов "телефон" ссылку на скрипт найденного объекта go.GetComponent<Телефон_скрипт>().id = i; //объект запоминает свой id - свою позицию в списке всех телефонов i++; }
} 5) при взимодействии с объектом бота через столкновение коллайдеров получем объект взаимодействия, залазим в его скрипт, меняем что надо, например отмечаем, что объект сейчас используется isUsing=true можем даже запихать в его скрипт ссылку на объект бота, который его использует. 6) таким образом у нас всегда есть доступ ко всем объектам, cгруппированным по своему функционалу. Мы всегда знаем, что с кем происходит, пробежавшись по элементам списка и заглянув в переменные скриптов. Через Телефон_скрипт.gameObject всегда можно получить доступ к нужному объекту, а если в скриптах объектов держали ссылки и на объект использующего их игрока/бота, то имеем еще и доступ к скриптам внутри этого бота/игрока (например, задачи вроде "найти стреляющую пулеметную установку в сцене, которая используется игроком с 10% здоровья" становятся решаемы в 3-5 строк кода ). Каждый объект всегда знает свое место в списке и, если его к примеру удаляют - он просто говорит главному скрипту: удали элемент с позиции такойто (свой id). Когда будем писать сетевую игру, это все отлично адаптируется и под сетевые взаимодействия, Игрок при использовании предмета просто дополнительно сообщает всем по сети: я использую телефон 3, или я сломал пулемет 5 - и все другие быстро и легко применяют эти изменения. 7) На примере с дверьми получится: Бот юзая дверь, сделал отметку в её скрипте, что он её открывал (заносим ссылку на объект Бота) Когда игрок использует дверь - Залазим в скрипт двери и видим, что кто-то её уже открывал - вызываем скрипт у этого объекта (атакуй_игрока) и вносим новые значения в скрипт двери (о том, что её теперь использует игрок). profit
|
|
| |
GantZ_Yaka | Дата: Суббота, 07 Июня 2014, 22:20 | Сообщение # 36 | Тема: Скрипт с JS на C# |
почетный гость
Сейчас нет на сайте
| Код public class Example : MonoBehaviour { float moveSpeed = 1.0f; float changeTime = 1; float rendomLimit = 0.25f; float R = 1f; private Vector2 tempPos; private Vector3 newPos; private float randomTime; public bool changeOrder = true; bool shiftMode = false; void Update() { if(shiftMode == false) { if (changeOrder) { changeOrder = false; StartCoroutine(Coroutine()); } } } public IEnumerator Coroutine() { tempPos = Random.insideUnitCircle * R; newPos = new Vector3(tempPos.x, tempPos.y, 0); randomTime = Random.Range(0.0f,100.0f); yield return new WaitForSeconds(randomTime); changeOrder = true; }
}
Сообщение отредактировал GantZ_Yaka - Суббота, 07 Июня 2014, 22:40 |
|
| |
GantZ_Yaka | Дата: Среда, 21 Мая 2014, 09:59 | Сообщение # 37 | Тема: F_t_P vs P_t_P |
почетный гость
Сейчас нет на сайте
| Только две модели монетизации рассматриваете. бывает еще покупка дополнительного контента, подписка, pay-to-win, и их комбинации, к примеру во всем известном wow применяют довольно успешно все озвученные модели сразу, ты покупаешь и коробку, и оформляешь подписку, и при выходе обновлений снова платишь за новый контент, и внутриигровые покупки реализованы. Для меня было громом среди ясного неба, когда узнал, что нынещние гейм-дизайнеры занимаются по сути своей только выдумыванием способов доиловки игроков на деньги, причем приоритет ставится именно на новых игроков, а не на удерждание старых, т.к. по графикам платежей всегда наблюдается одна и та же тенденция - новые игроки на первых, условно говоря, десяти уровнях платят в разы чаще и больше за всякие внутри-игровые плюшки, чем осевшие игроки. Потом идет резкий спад, и отток большого числа этих игроков. И если раньше во главу угла ставилось творчество, создание интересного контента, игровых механик, то теперь все служит единой цели - получить бабки, если шикарное нововведение, интересная идея, всякая любая фича не отвечает этому самому главному требованию - не способствует никак тому, что игрок заплатит свою лишнюю копейку игре - то её напрочь отметают. Именно на этом, мне кажется и могут сыграть инди - разработчики, как отметил автор, если делать в действительности стоящий продукт, удовлетворяя прежде всего не свои интересы, а интересы игроков - то и один лишь Pay to play может приносить хороший доход (хороший с токи зрения крохотного инди-разработчика). Однако это лишь вершина айсберга, нужно еще как-то донести свой продукт до потребителя, это уже другой более сложный вопрос и с финансовой точки зрения и в плане реализации...
|
|
| |
GantZ_Yaka | Дата: Воскресенье, 18 Мая 2014, 09:58 | Сообщение # 38 | Тема: Вопрос-[ответ] по Unity |
почетный гость
Сейчас нет на сайте
| Цитата DantorS ( ) GantZ_Yaka, с помощью cutout shader-а можно получить тени от текстуры? Да, если материал можно самостоятельно задать с этим шейдером, transparent - cutout - diffuse , если быть точней. Как вариант самостоятельно сделать префаб травы и рисовать им в качестве Trees.
|
|
| |
GantZ_Yaka | Дата: Суббота, 17 Мая 2014, 20:41 | Сообщение # 39 | Тема: Вопрос-[ответ] по Unity |
почетный гость
Сейчас нет на сайте
| Цитата DantorS ( ) Как можно сделать тени от травы? Там же всё держится на текстурах. Не делать же по травинке. Можно ,конечно, сделать траву в 3d редакторе. Запечь лайтмап и тогда тени будут. Но я лайтмап не использую transparent/cutout шейдер для травы попробовать да настройки теней в настройках unity поковырять, в настройках рендера травы еще CastShadows активировать. Делал решетчатые заборы в виде плоских плашек с дырявой текстурой png - и тени тоже дырявыми получались.
|
|
| |
GantZ_Yaka | Дата: Суббота, 17 Мая 2014, 20:07 | Сообщение # 40 | Тема: Каких размеров должен быть логотип (при загрузке игры)? |
почетный гость
Сейчас нет на сайте
| В идеале рисуется большим, а потом исходя из размеров текущего экрана программно подгоняется под нужную величину и в нужную позицию. Аналогично и с интерфейсами.
|
|
| |
|