- Home /
How do I instantiate a prefab B in same place prefab A?
I click once to instantiate A, then I click again so that B is instantiated in the same place where I have begotten A. I tried this code but it did not work.
if (AmountA > 0 && StateMouse == 0)
{
Instantiate(PrefabA, LocalItem.position, LocalItem.rotation); //Ok, He left the correct place, and is on the scene.
AmountA--;
}
StateMouse++;
if (StateMouse == 2)// new click, instance B
{
StateMouse = 0;
Rigidbody ne = GameObject.Instantiate(PrefabB, PrefabA.transform.position, PrefabA.transform.rotation) as Rigidbody; //<<<Wrong place
GameObject.Destroy(PrefabA); // Destroy A
}
Answer by DaveA · Nov 19, 2012 at 11:13 PM
GameObject a;
void Update()
if (AmountA > 0 && StateMouse == 0)
{
a = (GameObject)Instantiate(PrefabA, LocalItem.position, LocalItem.rotation); //Ok, He left the correct place, and is on the scene.
AmountA--;
}
StateMouse++;
if (StateMouse == 2)// new click, instance B
{
StateMouse = 0;
Rigidbody ne = GameObject.Instantiate(PrefabB, a.transform.position, PrefabA.transform.rotation) as Rigidbody; //<<< right place
Destroy(a); // Destroy A
}
don't work, About line "a= Instantiate(PrefabA ......);" "error CS0266: Cannot implicitly convert type `UnityEngine.Object' to `UnityEngine.GameObject'. An explicit conversion exists"
1- Debug return position (0.0,0.0,0.0) and 'PrefabB' is instantiated in the center of the scene;
2- This code is in "player" (if this is a problem, you know, He moves, change coordenades...);
3- GameObject.Destroy(a); Isn't deleted too;
PS.: I'm working with C#. Obviously I converted your javascript but still did not work.
Edited my response. Note the cast (GameObject)Instantiate. a should appear at LocalItem.position, thus have the same coordinates. So if LocalItem moves, that's going to be different. I don't see where you set LocalItem.
Thanks, now it works.
this "(GameObject)" was the solution.
I think this is like writing that is "as GameObject" at the end of the sentence.
Because the code must convert "Object" in "GameObject". Am I right?
Your answer
Follow this Question
Related Questions
How to destroy a game object within an instance of prefab 1 Answer
Two Instances of same Prefab dealing damage to each other. 0 Answers
How do I re-link an object that has unintentionally become detached from prefab? 0 Answers
Script uses transform.position of Prefab instead of Instance 1 Answer
How to do not apply fields in prefab 1 Answer