Все для Unity3d> Синхронизация клонов в Photon - Форум>
Страница 1 из 11
Форум » Unity » Вопросы » Синхронизация клонов в Photon (Синхронизация гранат в игре)
Синхронизация клонов в Photon
AlexonmbДата: Среда, 07.12.2016, 15:18 | Сообщение # 1
Новый писатель
Группа: Пользователи
Сообщений: 2
Статус: Offline
Добрый день. Добавляю в FPS Kit 3.0 гранты, всё выходит хорошо, но вот с синхронизацией проблема. У клиента клиента граната может лететь с
отклонением. Надо как-то их синхронизировать. Части скриптов
прикладываю.

Код
Vector3 fireDirection = isThirdPerson ? (playerWeapons.playerCamera.position + playerWeapons.playerCamera.forward * 100) - thisT.position : playerWeapons.playerCamera.forward * 100;
        Vector3 firePoint = isThirdPerson ? thisT.position + fireDirection * 0.001f : playerWeapons.playerCamera.position;

if(wSettings.fireType == PlayerWeapons.FireType.Grenade)
        {    //Do bullet spread, always do spread for shotgun even if aiming
            
                Vector3 spread = new Vector3 (Random.Range (-highestBulletSpread, highestBulletSpread), Random.Range (-highestBulletSpread, highestBulletSpread), Random.Range (-highestBulletSpread, highestBulletSpread));
                spread = Vector3.zero;

                ShootGrenade (firePoint, fireDirection + spread);

            
        }

void ShootGrenade(Vector3 firePoint, Vector3 fireDirection){
        
        //GameObject instantiatedProjectile  = (GameObject) Instantiate(projectile, firePoint, Quaternion.LookRotation(fireDirection)); 
        //Vector3 fp = new Vector3(firePoint.x-1,firePoint.y-1,firePoint.z);
        Rigidbody instantiatedProjectile  = (Rigidbody) Instantiate(projectile, firePoint, Quaternion.LookRotation(fireDirection)); 
        // Give it an initial forward velocity. The direction is along the z-axis of the missile launcher's transform.
        //instantiatedProjectile.velocity = transform.TransformDirection(Vector3 (0, 0, initialSpeed));
        //Vector3 velocity = new Vector3(0, 0, initialSpeed);
        //instantiatedProjectile.velocity = new Vector3(fireDirection.x/initialSpeed,fireDirection.y/initialSpeed,fireDirection.z/initialSpeed);
        instantiatedProjectile.AddForce(instantiatedProjectile.transform.forward * initialSpeed*60);

        Physics.IgnoreCollision(instantiatedProjectile.GetComponent<Collider[img]http://u3d.at.ua/.s/sm/2/angry.gif), transform.root.GetComponent<Collider[img]http://u3d.at.ua/.s/sm/2/angry.gif));
        foreach(Collider c in transform.root.GetComponentsInChildren<Collider[img]http://u3d.at.ua/.s/sm/2/angry.gif)){
            Physics.IgnoreCollision(instantiatedProjectile.GetComponent<Collider[img]http://u3d.at.ua/.s/sm/2/angry.gif), c);
        }
        //playerWeapons.playerCamera.rotation
        //Rigidbody insproj = instantiatedProjectile.GetComponent<Rigidbody> ();
        //insproj.AddForce (velocity);
         

        
    }

Они абсолютно не синхронизируются. Траектория похожа, но всё же может
отличаться. Как можно заставить гранаты лететь по одной
траектории(траектории клиента). Есть ответы?(интерполяция, возможно, но я
не умею её делать)

Добавлено (07.12.2016, 15:18)
---------------------------------------------
У клиента граната может лететь с отклонением*

 
Форум » Unity » Вопросы » Синхронизация клонов в Photon (Синхронизация гранат в игре)
Страница 1 из 11
Поиск:
Свернуть
Развернуть
Необходима авторизация
0
ТОП-5 САЙТА
НОВЫЕ ИГРЫ
ГОРЯЧИЕ ТЕМЫ
СЛУЧАЙНЫЕ ФАЙЛЫ