I get the error
"Cannot implicitly convert type 'UnityEngine.Vector3' to 'UnityEngine.Transform'"
What is the most effective way to convert a Vector3 to Transform?
example of use:
Vector3 spawningpos = getSpawnPos();
Instantiate(myPrefab, spawningpos);
Your issue is explained very well by the error you're receiving, lets have a look
"Cannot implicitly convert type 'UnityEngine.Vector3' to 'UnityEngine.Transform'"
So where are you trying to set a Transform's value to a Vector3?
private Transform spawningpos;
spawningpos is a Transform
spawningpos = new Vector3(Random.Range(-spawningAria, spawningAria) + transform.position.x, 2f, Random.Range(-spawningAria, spawningAria) + transform.position.z);
But here you are clearly setting its value to a Vector3
Instantiate(insects[Random.Range(0, insects.Length)], spawningpos);
On this line you then instantiate the object - using the Transform as input. As you will find here, the overload you are using for the method is actually asking for the parent's Transform, try this instead
private Vector3 spawningpos;
Followed by, as before
spawningpos = new Vector3(Random.Range(-spawningAria, spawningAria) + transform.position.x, 2f, Random.Range(-spawningAria, spawningAria) + transform.position.z);
And finally
Instantiate(insects[Random.Range(0, insects.Length)], spawningpos, Quaternion.identity);
This code will call the correct overload of the Instantiate method, setting the object's rotation is mandatory when passing a Vector3
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With