Среда, 24 Апреля 2024, 07:57

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Форум игроделов » Записи участника » GantZ_Yaka [95]
Результаты поиска
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 в сцене smile Совать в список объект надо лишь один раз - при его создании. Лучше всего это сделать скриптом на префабе объекта 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 smile
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 | Тема: Каких размеров должен быть логотип (при загрузке игры)?
почетный гость
Сейчас нет на сайте
В идеале рисуется большим, а потом исходя из размеров текущего экрана программно подгоняется под нужную величину и в нужную позицию. Аналогично и с интерфейсами.
Форум игроделов » Записи участника » GantZ_Yaka [95]
  • Страница 2 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск:

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