Мультиплеерная камера

Сеть в Unity3D

Мультиплеерная камера

Сообщение Hoper098 29 ноя 2017, 16:36

Делаю танчики в 2D, и не могу разобраться с камерой. Вроде смог сделать для каждого игрока свою камеру, но появляются проблемы. У хоста с танком все нормально, но когда подключается 2 игрок, он не может двигаться и понемногу катится вниз, также появляется проблема с наводкой башни танка (наводится на мышь), наводится непонятно куда. Помогите, а то уже который день мучаюсь.
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
public class TankControl : NetworkBehaviour
{

    [SerializeField]
    private float Speed_of_Tank=25f;
    [SerializeField]
    private float turn=7f;
    private Rigidbody2D telo;
    [SerializeField]
    private Transform gun;
    [SerializeField]
    private float Speed_of_Gun_Turn = 5f;



    [SerializeField]
    float cameradistance = 34.0f;
    [SerializeField]
    float cameraHeight = 20.0f;
    Transform mainCamera;
    Vector3 cameraOffset;
    Quaternion Turngun()
    {
        Vector3 mouse = Input.mousePosition;
        mouse.z = UnityEngine.Camera.main.transform.position.z;
        Vector3 direction = UnityEngine.Camera.main.ScreenToWorldPoint(mouse) - transform.position;
        float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
        return Quaternion.AngleAxis(angle, Vector3.forward);
    }
    private void Start()
    {
    if (!isLocalPlayer)
        {
            Destroy(this);
            return;
        }
        telo = GetComponent<Rigidbody2D>();
        cameraOffset = new Vector3(0f, 0f, -cameradistance);
        mainCamera = UnityEngine.Camera.main.transform;
        MoveCamera();

    }
    void MoveCamera()
    {
        mainCamera.position = transform.position;
        mainCamera.Translate(cameraOffset);
        mainCamera.LookAt(transform);
    }
    private void FixedUpdate()
    {
        gun.rotation = Quaternion.Lerp(gun.rotation, Turngun(), Speed_of_Gun_Turn * Time.deltaTime);
        telo.gravityScale = 0;
        float xMov = Input.GetAxisRaw("Vertical");
        float yMov = Input.GetAxisRaw("Horizontal");
        telo.AddForce(transform.right * Speed_of_Tank * xMov, ForceMode2D.Impulse);
        telo.AddTorque(turn * yMov * -Mathf.Sign(xMov), ForceMode2D.Impulse);
        MoveCamera();
    }
Hoper098
UNец
 
Сообщения: 5
Зарегистрирован: 27 ноя 2017, 16:39

Re: Мультиплеерная камера

Сообщение Filosov 23 янв 2018, 17:03

Не очень понятно чем осуществляется синхронизация. Я не претендую на специалиста, но я не вижу ни Command ни SyncVar. Почему управление камерой в Fixed?
Filosov
UNец
 
Сообщения: 38
Зарегистрирован: 30 май 2016, 11:51

Re: Мультиплеерная камера

Сообщение ArmoredElite 29 янв 2018, 10:40

Filosov писал(а):Не очень понятно чем осуществляется синхронизация. Я не претендую на специалиста, но я не вижу ни Command ни SyncVar. Почему управление камерой в Fixed?



Ну тут всё ясно... Иди дальше изучай юньку... До сетевой тебе далеко!
ArmoredElite
UNец
 
Сообщения: 2
Зарегистрирован: 28 янв 2018, 12:54


Вернуться в Сеть

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3