[Unity] Problem ze spawnowaniem obiektów - Instantiate a pozycja obiektu


#1

Witam.
Postaram się przedstawić sprawę najprościej jak się da:
Mam obiekt typu cube “spawnerPodloza”. Obiekt ma polozenie X=300, Y=0, Z=0, obrót na 0, skala na 1.
Do obiektu mam przypisany skrypt:

public GameObject podlozePrefab;
public Transform pozycja;
public void Spawn()
{
GameObject podloze = (GameObject)Instantiate(podlozePrefab, pozycja.position, pozycja.rotation);
}

Jako podlozePrefab, mam znowu obiekt typu cube (a raczej jego prefab), o skali X=300, Y=1, Z=20.
jako pozycja, mam przypisane Transform obiektu spawnerPodloza.

spawnerPodloza jest w pozycji X=300,Y=0,Z=0, jak wcześniej pisałem.
I na logikę, powinien on wytworzyć obiekt typu podlozePrefab, w dokładnie takiej pozycji: X=300, Y=0, Z=0.
Natomiast tworzy on obiekt w pozycji: X=300, Y=1.000022, Z=4.835244e-06
(Y i Z za każdym odpaleniem gry tworzą się randomowo…)

Dodam, że obiekt podloze ma włączony Box Collider

Czy ktoś mógłby mi pomóc?


#2

Potrzebny ci ten cube do spawnera? jak nie potrzebujesz mesha/wizualizacji to uzyj poporstu empty game object. (niewiem na ile znasz unity ale mozesz dodac sobie jakby ikonke/znacznik do pustego obiektu zeby widziec gdzie jest jego pozycja na scenie, na koncu posta dalem screena gdzie).
w rotacji mozesz dac Quaternion.identity chyba ze masz podloze nie regularne i bedzeisz kombinowal spwn w innych pozycja niz oryginalna prefabu.
Wylacz wszytko odpowiedzialne za fizyke na tych obiektach (collider / rigidbody) i zobacz czy dziala normlanie, moze byc ze koliduje z czyms i wtedy unity probuje to “wypchnac” poza collider. 0.5 z jednego cuba i 0.5 z drugiego da akurat 1 na y :smiley:

a na spawner podloza masz collider czy nie?

znaczniki (ten niebieski cube);
tag


#3

Zrobiłem wszystko inaczej, założyłem nowy temat, bo to co tutaj wypisywałem nie ma już nic wspólnego z tym co obecnie zrobiłem. Niemniej - dziekuje za rady!