• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Błąd unity - kompilacja NIEROZWIĄZANE(bo nie umiem)

Object Storage Arubacloud
0 głosów
351 wizyt
pytanie zadane 11 lutego 2018 w C# przez niezalogowany
edycja 11 lutego 2018

Witam.

Mam problem z unity, a mianowicie, gdy chce odpalić Symulacje/gre Pokazuje mi się błąd:

NullReferenceException: Object reference not set to an instance of an object
PlayerController.Update () (at Assets/PlayerController.cs:37)

Oto kod:

 


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[RequireComponent(typeof(CharacterController))]
public class PlayerController : MonoBehaviour
{
    public Transform cameraTransform;
    public float playerWalkingSpeed = 5f;
    public float playerRunningSpeed = 15f;
    public float jumpStrength = 5f;
    public float verticalRotationLimit = 80f;

    Vector3 forwardMovement;
    Vector3 sidewaysMovement;

    Vector3 verticalVelocity;


    float verticalRotation = 0;
    CharacterController cc;

    void Awake()
    {
        cc = GetComponent<CharacterController>();
        Cursor.visible = false;
        Cursor.lockState = CursorLockMode.Locked;
    }

    void Update()
    {
        float horizontalRotation = Input.GetAxis("Mouse X");
        transform.Rotate(0, horizontalRotation, 0);
        verticalRotation -= Input.GetAxis("Mouse Y");
        verticalRotation = Mathf.Clamp(verticalRotation, -verticalRotationLimit, verticalRotationLimit);
        Camera.main.transform.localRotation = Quaternion.Euler(verticalRotation, 50, 0);
        forwardMovement = cameraTransform.forward * Input.GetAxis("Vertical") * playerWalkingSpeed;
        sidewaysMovement = cameraTransform.right * Input.GetAxis("Horizontal") * playerWalkingSpeed;
        if (Input.GetKey(KeyCode.LeftShift))
        {
            forwardMovement = cameraTransform.forward * Input.GetAxis("Vertical") * playerRunningSpeed;
            sidewaysMovement = cameraTransform.right * Input.GetAxis("Horizontal") * playerRunningSpeed;
        }

        verticalVelocity += Physics.gravity * Time.deltaTime;

        if (Input.GetButton("Jump") && cc.isGrounded)
        {
            verticalVelocity = new Vector3(0, jumpStrength, 0) * Time.deltaTime;
        }

        Vector3 playerMovement = sidewaysMovement + verticalVelocity + forwardMovement;



        cc.Move(playerMovement * Time.deltaTime);
    }

}

Proszę o jak najszybszą odpowiedź.

1 odpowiedź

0 głosów
odpowiedź 11 lutego 2018 przez Damian11131 Stary wyjadacz (13,490 p.)
Zmienna cameraTransform jest niezainizjalizowana. Jest publiczna, więc pewnie jej wartość miała być przypisana przez edytor, ale zapomniałeś to zrobić najwidoczniej
komentarz 11 lutego 2018 przez niezalogowany
A co trzeba zrobić, bo w tych tematach jestem prawie zielony.
komentarz 11 lutego 2018 przez Damian11131 Stary wyjadacz (13,490 p.)

W edytorze wybierasz obiekt w którym chcesz przypisać zmienne i w zakładce z załączonym skryptem wyszukujesz nazwy zmiennej którą chcesz zainizjalizować, następnie bierzesz obiekt z listy obiektów w grze i przeciągasz go do nazwy tej zmiennej. Poszukaj na internecie jak dalej nie wiesz o co chodzi.

komentarz 11 lutego 2018 przez niezalogowany
Mam zaznaczone
komentarz 11 lutego 2018 przez niezalogowany

Sorry, ale nie widzisz tego obrazkaNo i widać skrypt i zaznaczony Camera Transform oraz Błąd

Podobne pytania

0 głosów
2 odpowiedzi 578 wizyt
pytanie zadane 20 września 2020 w OpenGL, Unity przez Wiktor Panecki Użytkownik (920 p.)
0 głosów
1 odpowiedź 113 wizyt
pytanie zadane 25 lipca 2017 w C# przez MsMaciek123 Pasjonat (24,760 p.)
0 głosów
1 odpowiedź 216 wizyt
pytanie zadane 22 listopada 2016 w C# przez Damian_ Nowicjusz (180 p.)

92,568 zapytań

141,422 odpowiedzi

319,638 komentarzy

61,957 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...