Посмотрел видеоуроки Networking, маленько понял суть. Делаю мультиплеер для своего танковского проекта. Танк при спауне собирается из башни и корпуса. При этом башня удочеряется корпусу. Когда один игрок спаунит танк, у другого башня не удочеряется корпусу. Спаун происходит в RPC функции через так:
У того игрока, который спаунит танк, всё хорошо. У другого игрока башня не удочеряется, и поэтому моргает (то (0, 1.2, -0.4) по локальной, то то же по глобальной) Скрипт синхронизации такой:
Может в этом скрипте как-то можно написать, чтобы он синхронизировал своего родителя с остальными игроками?
пи-си: может написал я коряво, но надеюсь, понятно.
Добавлено (17 Дек 2015, 18:10) --------------------------------------------- Маленько перефразирую: Имея два объекта с networkView, инстанциированых клиентом, можно ли на сервере удочерить один другому?
Добавлено (18 Дек 2015, 14:58) --------------------------------------------- Ну же, ребят, нужна помощь! Вот еще доп. инфа, функция спауна танка:
Код
functionSpawn(){ var b :Transform; b =Network.Instantiate(Body,SpawnPoints[RN].transform.position,SpawnPoints[RN].transform.rotation,0); ReSpawnTimer=ReSpawnDaley; var t :Transform; varTr= b.GetComponent("Tracks"); t =Network.Instantiate(Turret,SpawnPoints[RN].transform.position +SpawnPoints[RN].transform.TransformDirection(Tr.TurretPosition),SpawnPoints[RN].transform.rotation,0); gameObject.GetComponentInChildren(SmoothFollow).target = t.transform; gameObject.GetComponentInChildren(SmoothFollow).Team= b.GetComponent("Health"); t.parent = b; b.GetComponent("Health").Team=Team; for(varDHit:Damagein t.GetComponentsInChildren(Damage)) DHit.GetComponentInChildren(Damage).MyHealth= b.GetComponent("Health"); b.GetComponent("Health").Turret= t.transform;
Как мне найти и башню, и корпус на всех клиентах и сервере, а затем удочерить их друг другу? Пытался таким способом, но выдает ошибку, говорит, что Network.Instantiate должен опираться на префаб:
Код
functionSpawn(){ var b :Transform; b =Instantiate(Body,SpawnPoints[RN].transform.position,SpawnPoints[RN].transform.rotation); var t :Transform; t =Instantiate(Turret,SpawnPoints[RN].transform.position +SpawnPoints[RN].transform.TransformDirection(Tr.TurretPosition), t.parent = b; Tank=Network.Instantiate(b.gameObject,SpawnPoints[RN].transform.position,SpawnPoints[RN].transform.rotation,0); }
Сообщение отредактировал VolkOrievith - Пт, 18 Дек 2015, 14:58