я делаю онлайн шутер от 3-его лица и происходит баг с присваиванием камеры. Делаю на Unity при помощи PUN 2

На сколько я знаю, в Photon 2 есть баг с присваиванием камер. Она присваивается одна к двум игрокам, но проблема не в том, что я управляю сразу двумя камерами, а в том, что я вообще не могу управлять камерой, когда подключается второй игрок, когда игрок дин то се работает. Долго искал решение в интернете и не нашел. Помогите, пожалуйста.`

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;
using System;

public class PlayerCintrollerSecondEdition : MonoBehaviour
{
    [SerializeField]
    private float MoveSpeed = 5f;
    [SerializeField]
    private float LookSpeed = 3f;
    [SerializeField]
    private Camera Cam;

    private PhotonView photonView;

    Vector3 velosity;
    Vector3 xRotation;
    Vector3 yRotation;

    public Transform CamTrans;
    public Transform pivot;
    public Transform Character;
    public Transform mTransform;

    public CameraConfig cameraConf;
    public bool leftPivot;
    public float delta;

    public float mouseX;
    public float mouseY;
    public float smoothX;
    public float smoothY;
    public float smoothXVel;
    public float smoothYVel;
    public float lookAngle;
    public float titlAngel;



    public Rigidbody rb;
    void Start()
    {
        rb = GetComponent<Rigidbody>();
        photonView = GetComponent<PhotonView>();
    }

    // Update is called once per frame
    void Update()
    {
        if (photonView.IsMine) {
            MoveContr();
        }

    }

        void MoveContr()
    {
        float xMov = Input.GetAxis("Horizontal");
        float zMov = Input.GetAxis("Vertical");

        Vector3 movHor = transform.right * xMov;
        Vector3 movVer = transform.forward * zMov;

        velosity = (movHor + movVer).normalized * MoveSpeed;

       /* float yRot = Input.GetAxis("Mouse X");
        xRotation = new Vector3(0f, yRot, 0f) * LookSpeed;

        float xRot = Input.GetAxis("Mouse Y");
        yRotation = new Vector3(xRot, 0f, 0f) * LookSpeed;
        */
        if (velosity != Vector3.zero)
        {
            rb.MovePosition(rb.position + velosity * Time.fixedDeltaTime);
        }
    }


        void FixedUpdate() {

        if (photonView.IsMine)
        {
            FixedTick();
        }
    }

        void FixedTick() {
            delta = Time.deltaTime;
            HandleRot();
            HandlePos();

            Vector3 targetPos = Vector3.Lerp(mTransform.position, Character.position, 1);
            mTransform.position = targetPos;
        }

        void HandlePos() {
            float targetX = cameraConf.normalX;
            float targetY = cameraConf.normalY;
            float targetZ = cameraConf.normalZ;

            Vector3 newPivotPosition = pivot.localPosition;
            newPivotPosition.x = targetX;
            newPivotPosition.y = targetY;

            Vector3 newCameraPosition = CamTrans.localPosition;
            newCameraPosition.z = targetZ;

            float t = delta * cameraConf.pivotSpeed;
            pivot.localPosition = Vector3.Lerp(pivot.localPosition, newPivotPosition, t);
            CamTrans.localPosition = Vector3.Lerp(CamTrans.localPosition, newCameraPosition, t);
        }

        void HandleRot()
        {
            mouseX = Input.GetAxis("Mouse X");
            mouseY = Input.GetAxis("Mouse Y");

            if (cameraConf.turnSnooth > 0)
            {
                smoothX = Mathf.SmoothDamp(smoothX, mouseX, ref smoothXVel, cameraConf.turnSnooth);
                smoothY = Mathf.SmoothDamp(smoothY, mouseY, ref smoothYVel, cameraConf.turnSnooth);
            }
            else 
            {
            smoothX = mouseX;
            smoothY = mouseY;
            }
        lookAngle += smoothX * cameraConf.Y_rot_speed;
        Quaternion targetrot = Quaternion.Euler(0, lookAngle, 0);
        mTransform.rotation = targetrot;

        titlAngel -= smoothY * cameraConf.Y_rot_speed;
        titlAngel = Mathf.Clamp(titlAngel, cameraConf.minAngl, cameraConf.maxAngl);
        pivot.localRotation = Quaternion.Euler(titlAngel, 0, 0);

    }

}

`


Ответы (0 шт):