Как реализовать строительство?

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Как реализовать строительство?

Сообщение DiXel 25 мар 2013, 16:03

Как можно реализовать строительство из блоков? Не Minecraft-стайл, а из разных моделей типа стен, крыш, на тиррейне? Так чтобы можно было ровно состыковать, и без пересечений.
А ещё, как выровнять тиррейн в определённом радиусе относительно одной точки?
Понимаю, что "надо самому всё делать", но нет ли готовых скриптов строительства, или наработок, хотя бы начало, чтобы проверялись коллизии.
P.S.: Как построенное пользователем отобразить в мультиплеере, или с этим не должно возникнуть пробелем? просто в мультиплеере вообще не шарю =(
Skype: dixellitum
Mail: _the.dixx@yandex.ru
DiXel
UNIверсал
 
Сообщения: 396
Зарегистрирован: 27 май 2011, 07:19

Re: Как реализовать строительство?

Сообщение AMD 25 мар 2013, 17:33

Вряд ли кто поделится, сам столкнулся с проблемой проверки свободного места... Оказалось тяжелее чем думал (баг был малозаметный)

Насчет синхронизации по сети:

Так просто ничего не будет отображаться, так или иначе придется думать и делать. Так же вам надо определиться "какую сеть " будете использовать.

Насчет изменения динамически высоты террайна, где-то тут (на форуме) был пример + скрипт, как террейн деформировался от взрывов.
Программист — это профессиональный конвертер галлюцинаций заказчика в жесткую формальную систему.
AMD
UNITрон
 
Сообщения: 349
Зарегистрирован: 16 июн 2012, 14:33
Откуда: Москва

Re: Как реализовать строительство?

Сообщение newArray 25 мар 2013, 18:38

Еcли кто инстансилл объект, то если нетворк инстанс тогда егго положение и перемешение увидят все игроки - воще не сложно. а вот если его схватил и двинул не тот кто истансил тогда сложнее - не синхронизируется - хотя тоже решение есть
newArray
Адепт
 
Сообщения: 1226
Зарегистрирован: 14 фев 2013, 07:03
Откуда: оттуда

Re: Как реализовать строительство?

Сообщение DiXel 26 мар 2013, 04:29

Уже есть идея использовать DragRigidBody, лочить поворот, чтоб стены не падали. Но как инстансить, и защитить от других игроков. И вообще, БУДЕТ ЛИ работать DragRigidBody в мультиплеере?
P.S.: Эта тема первая в гугле по запросу "строительство unity3d", lol
Skype: dixellitum
Mail: _the.dixx@yandex.ru
DiXel
UNIверсал
 
Сообщения: 396
Зарегистрирован: 27 май 2011, 07:19

Re: Как реализовать строительство?

Сообщение DiXel 26 мар 2013, 06:13

Тут, имхо, основной проблемой является синхронизация, я тут со знакомым работаю над проектом 3д мира, в котором каждый может строить.
Т.к. надо сделать 24\7 сервер, и каждый заходящий видел бы постройки. Возможно даже тиррейн должен будет подгружаться из сети.
Skype: dixellitum
Mail: _the.dixx@yandex.ru
DiXel
UNIверсал
 
Сообщения: 396
Зарегистрирован: 27 май 2011, 07:19

Re: Как реализовать строительство?

Сообщение newArray 26 мар 2013, 09:02

Подучи основы сначала. Что такое буферизация. То есть если будет использована стандартная команда нетворк инстанс или как там на фотоне допустим, то этот инстанс будет буферизированным, То есть любой новый кто зайдет увидит конечный результат всех действий которые совершались с этим го. Даже если он зашел 100500 лет после того как эти операции были проделаны. А как не дать другим игроками трогать чужой инстансированный объект. Да очень просто -проблем даже в том что все передвижения которые он сделает увидит только он сам и больше никто. Проблемы у тебя большие будут но не там где ты думаешь. а в администрировании игры - сохранение запись учет.
Драг риджибади ему все равно где работать. Хоть в мультиплеере хоть где. а синхронизация этот объекта который таскают никаким образом к драгу не относится - это другой код совсем.
newArray
Адепт
 
Сообщения: 1226
Зарегистрирован: 14 фев 2013, 07:03
Откуда: оттуда

Re: Как реализовать строительство?

Сообщение DiXel 26 мар 2013, 10:00

Насчёт увидит он сам: Что насчёт того, что изменения будут производиться уже с другого ип, но хозяином? И ещё будут ли сохраняться чужие изменения у него самого?
И что будет с объектами после рестарта сервера? Их ведь сохранять надо как-то...
Skype: dixellitum
Mail: _the.dixx@yandex.ru
DiXel
UNIверсал
 
Сообщения: 396
Зарегистрирован: 27 май 2011, 07:19

Re: Как реализовать строительство?

Сообщение newArray 26 мар 2013, 10:06

Сказали ж учи основы. Все что ты проинстансируешь естественно не сохраниться при перезагрузке игры. вот эти изменения и надо сохранять - составлять базы и т д Да потом еще и грузить каждый раз игру из баз с построенными объектами.
newArray
Адепт
 
Сообщения: 1226
Зарегистрирован: 14 фев 2013, 07:03
Откуда: оттуда

Re: Как реализовать строительство?

Сообщение DiXel 26 мар 2013, 12:52

Насколько сильно изменится примерно такой код? Просьба про ошибки возможные не говорить, ещё не дописал и не тестил. Просто насколько это изменится для сети?
Синтаксис:
Используется javascript
var curObject: Rigidbody;
var canMove = false;
var MoveModeOn = false;
var speed: int = 1;

function Update()
{
        if (Input.GetKey(KeyCode.M))
        {
       
        MoveModeOn = !MoveModeOn;
        canMove = MoveModeOn; //here's a code that checking if player can build (he's admin or it's his plot)
        }
        if (Input.GetKey(KeyCode.W) && curObject && canMove)
        {
        curObject.transform.position.x = curObject.transform.position.x + speed;
        }
        if (Input.GetKey(KeyCode.S) && curObject && canMove)
        {
        curObject.transform.position.x = curObject.transform.position.x - speed;
        }
        if (Input.GetKey(KeyCode.A) && curObject && canMove)
        {
        curObject.transform.position.z = curObject.transform.position.z + speed;
        }
        if (Input.GetKey(KeyCode.D) && curObject && canMove)
        {
        curObject.transform.position.z = curObject.transform.position.z - speed;
        }
       
       
       
        var mainCamera = FindCamera();
    var hit : RaycastHit;
    if (Input.GetMouseButtonDown(1))
           {
           if (Physics.Raycast(mainCamera.ScreenPointToRay(Input.mousePosition),  hit, 100))
               curObject = hit.rigidbody;
           }
}
 
Skype: dixellitum
Mail: _the.dixx@yandex.ru
DiXel
UNIверсал
 
Сообщения: 396
Зарегистрирован: 27 май 2011, 07:19

Re: Как реализовать строительство?

Сообщение DiXel 26 мар 2013, 13:31

так как сделать так, чтобы игрок мог своё менять уже с другого ип, после ребута и т.д.? если что у игроков будут ники, по нему можно идентифицировать, но как вписать в объекты ник?
Skype: dixellitum
Mail: _the.dixx@yandex.ru
DiXel
UNIверсал
 
Сообщения: 396
Зарегистрирован: 27 май 2011, 07:19


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 11