Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Unity - odwołania do komponentów


Rekomendowane odpowiedzi

Opublikowano

Siemano,

mam taki skrypt:

using UnityEngine;
using System.Collections;

public class CameraController : MonoBehaviour {

	private Transform player;

	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
		Debug.Log (player.position);
	}
}

I coś nie chce działać, bo pisze, że Object Reference nie jest zdefiniowane jako obiekt w linijce 15

Co robić???

PS. nawet public nie działa w linijce 6

Opublikowano

Próbujesz się odwołać do pustej zmiennej jak do obiektu. Z tego co mi się udało podwędzić z google to powinno to wyglądać +/- tak:

     void Start()
     {
         player = transform.gameObject.transform;
     }
Opublikowano

Po co tworzysz kolejną zmienną?
Nie musisz tworzyć zmiennej "player", bo zmienna typu Transform jest domyślnie, użyj po prostu nazwy "transform".

 

Edit:

 

Dobrze powiedziałem, że zmienna typu Transform jest domyślnie zdefiniowana? :D Bo teraz tak rozkminiam, czy się nie pomyliłem.

Opublikowano

Zamiast

private Transform player;

zapisz

public GameObject player;

 

następnie jeśli chcesz go przenieść w inne miejsce zapisz:

 

void Update () {

 

 player.transform.position = new Vector3(x, y, z);

}

 

W miejsce x, y, z wpisz odpowiednie wartości.

Opublikowano

Jeżeli skrypt już jest na graczu, to wystarczy 

transform.<etc>

Jeżeli natomiast nie jest, to musisz zrobić

public Transform playerPrefab;

i wrzucić w inspektorze transform gracza, zawsze możesz zrobić GameObject zamiast Transforma, dużej różnicy nie ma.

Moja oficjalna strona! :)

http://socketbyte.pl/ 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...