Błąd w skrypcie

0

Witam, napotkałem błąd którego jak na razie nie potrafię rozwiązać a mianowicie chodzi o to:
aaa.PNG
Po kliknięciu w to pokazuje na tą linijkę
add.PNG
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 :)

1

Z błędu wynika że zmienna audioTR nie została przypisana

0

Wydaję mi się, że to kwestia tego, że GraczGO szuka dzieci obiektu, do którego przypięty jest skrypt dopiero w metodzie Start. Spróbuj zmienić Start na Awake.
Unity uruchamia metody Awake we wszystkich skryptach dziedziczących po MonoBehaviour. Jeżeli wszystkie Awake zostały wykonane, następuje wykonanie Start.

0

Po zmianie Start na Awake nic to nie zmieniło a w GraczGO nie można zmienić na Awake bo wyskakuje błąd.
I dalej się nie da wejść w unity i w bildzie
cvxcvcxvxvcx.PNG
wqeqwe.PNG
A jak wejdę na 2 buildach to wyskakuje w konsoli Null
dsdssdaasdsad.PNG

0

Według mnie Awake powinien zostać wykorzystany tylko w GraczGO. Jeżeli po tej zmianie występują jakieś błędy to musisz dążyć do sprawdzenia co powoduje ten błąd w samym skrypcie GraczGO.
Link prosto z dokumentacji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1