Witam, napotkałem błąd którego jak na razie nie potrafię rozwiązać a mianowicie chodzi o to:
Po kliknięciu w to pokazuje na tą linijkę
A tutaj zostawiam skrypty do linijki powyżej jak i do odniesienia GraczaGO
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NetPosSync : Photon.MonoBehaviour
{
public float mnoznikPozycja = 5f;
public float mnoznikRotacja = 5f;
Vector3 docelowaPozycja;
Quaternion docelowaRotacja;
public CharacterController cc;
GraczGO graczGO;
void Start()
{
cc = GetComponent<CharacterController>();
graczGO = GetComponent<GraczGO>();
}
void Update()
{
if (photonView.isMine == false)
{
transform.position = Vector3.Lerp(transform.position, docelowaPozycja, mnoznikPozycja * Time.deltaTime);
transform.rotation = Quaternion.Slerp(transform.rotation, docelowaRotacja, mnoznikRotacja * Time.deltaTime);
graczGO.audioTR.rotation = Quaternion.identity;
}
else
{
if (graczGO == null || graczGO.graczAnim == null)
return;
}
{
Vector3 predkosc = transform.InverseTransformVector(cc.velocity);
float x, z;
x = Input.GetAxis("Horizontal");
z = Input.GetAxis("Vertical");
if (x <= -0.5f && z == 0f)
predkosc.x = -1f;
else if (x >= 0.5f && z ==0f)
predkosc.x = 1f;
else
predkosc.x = 0f;
if (z <= -0.5f)
predkosc.z = -1f;
else if (z >= 0.5f)
predkosc.z = 1f;
else
predkosc.z = 0f;
if (predkosc.x != 0 || predkosc.z != 0)
predkosc.z = 1f;
else
predkosc.y = 0f;
graczGO.graczAnim.SetFloat("Predkosc", predkosc.y);
graczGO.graczAnim.SetFloat("PredkoscX", predkosc.x);
graczGO.graczAnim.SetFloat("PredkoscY", predkosc.z);
}
}
void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info)
{
if (photonView.isMine)
{
//Gracz należy do mnie
stream.SendNext(transform.position);
stream.SendNext(transform.rotation);
if (graczGO == null || graczGO.graczAnim == null)
return;
stream.SendNext(graczGO.graczAnim.GetFloat("Predkosc"));
stream.SendNext(graczGO.graczAnim.GetFloat("PredkoscX"));
stream.SendNext(graczGO.graczAnim.GetFloat("PredkoscY"));
}
else
{
//Gracz nie należy do mnie
docelowaPozycja = (Vector3)stream.ReceiveNext();
docelowaRotacja = (Quaternion)stream.ReceiveNext();
if (graczGO == null || graczGO.graczAnim == null)
return;
graczGO.graczAnim.SetFloat("Predkosc", (float)stream.ReceiveNext());
graczGO.graczAnim.SetFloat("PredkoscX", (float)stream.ReceiveNext());
graczGO.graczAnim.SetFloat("PredkoscY", (float)stream.ReceiveNext());
}
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GraczGO : MonoBehaviour
{
public Gracz mojGracz;
public Animator graczAnim;
public Transform bronieTpsTR;
public Transform bronieFpsTR;
// Audio // BroniZbliskaAS = reload
public Transform audioTR;
public AudioSource KrokiAS;
public AudioSource bronPrzeladowanieAS;
public AudioSource BronAS;
public void Start()
{
graczAnim = transform.Find("Model").GetComponent<Animator>();
bronieTpsTR = graczAnim.transform.Find("Hips/Spine/Spine1/Spine2/RightShoulder/RightArm/RightForeArm/RightHand/RightHandIndex1/BronieTPS");
bronieFpsTR = transform.Find("TrzymaczKamery/Kamera/BronieFPS");
audioTR = transform.Find("Audio");
KrokiAS = transform.Find("Audio/Kroki").GetComponent<AudioSource>();
bronPrzeladowanieAS = transform.Find("Audio/Bron/BronPrzeladowanie").GetComponent<AudioSource>();
BronAS = transform.Find("Audio/Bron/Bron").GetComponent<AudioSource>();
}
}
Z góry dziękuje za każdą pomoc :)