[RESOLVIDO] Erro com "Instantiate"
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Erro com "Instantiate"
Boa tarde gente, alguém saberia como posso resolver este erro? " error CS1501: No overload for method `Instantiate' takes `2' arguments "
A linha do script que está dando este erro é esse:
- Código:
[Header("GameObjects")]
[SerializeField] GameObject flashLightPickupObject;
[Header("Transform's")]
[SerializeField] Transform dropPos;
A linha do script que está dando este erro é esse:
- Código:
public void dropItem(){
Inventory.inventory.item[0] = false;
updateFlashlight(false);
GameObject _flashlight = Instantiate (flashLightPickupObject, dropPos);
if (_flashlight.GetComponent<Rigidbody>() != null) {
_flashlight.GetComponent<Rigidbody>().AddForce(transform.forward * 150f);
}
}
}
Re: [RESOLVIDO] Erro com "Instantiate"
Essas são as sobrecargas do Instantiate:
A que você está usando é a segunda:
Nessa sobrecarga você precisa passar como argumento um Transform e não um Vector3, note.
Acho que o caso que você procura é essa sobrecarga, que passa o Vector3:
Nesse caso, basta colocar como 3º argumento a rotação do objeto, comumente a gente coloca Quaternion.identity se não quer interferir na rotação do objeto.
Link de referência das sobrecargas: https://docs.unity3d.com/ScriptReference/Object.Instantiate.html
- Código:
public static Object Instantiate(Object original);
public static Object Instantiate(Object original, Transform parent);
public static Object Instantiate(Object original, Transform parent, bool instantiateInWorldSpace);
public static Object Instantiate(Object original, Vector3 position, Quaternion rotation);
public static Object Instantiate(Object original, Vector3 position, Quaternion rotation, Transform parent);
A que você está usando é a segunda:
- Código:
public static Object Instantiate(Object original, Transform parent);
Nessa sobrecarga você precisa passar como argumento um Transform e não um Vector3, note.
Acho que o caso que você procura é essa sobrecarga, que passa o Vector3:
- Código:
public static Object Instantiate(Object original, Vector3 position, Quaternion rotation);
Nesse caso, basta colocar como 3º argumento a rotação do objeto, comumente a gente coloca Quaternion.identity se não quer interferir na rotação do objeto.
Link de referência das sobrecargas: https://docs.unity3d.com/ScriptReference/Object.Instantiate.html
Re: [RESOLVIDO] Erro com "Instantiate"
Quando eu tiro o "DropPos" que é um Transform os erros param, porém ele é essencial para que o objeto seja meio que Dropado a frente do personagem, estou utilizando este script de um canal gringo, só que o script dele funciona perfeitamente sendo que o meu é idêntico ao dele. Não compreendi como aplicar esta forma que vc disse hsuaahsu.. Ainda sou meio leigo com essa função "Instantiate".MayLeone escreveu:Essas são as sobrecargas do Instantiate:
- Código:
public static Object Instantiate(Object original);
public static Object Instantiate(Object original, Transform parent);
public static Object Instantiate(Object original, Transform parent, bool instantiateInWorldSpace);
public static Object Instantiate(Object original, Vector3 position, Quaternion rotation);
public static Object Instantiate(Object original, Vector3 position, Quaternion rotation, Transform parent);
A que você está usando é a segunda:
- Código:
public static Object Instantiate(Object original, Transform parent);
Nessa sobrecarga você precisa passar como argumento um Transform e não um Vector3, note.
Acho que o caso que você procura é essa sobrecarga, que passa o Vector3:
- Código:
public static Object Instantiate(Object original, Vector3 position, Quaternion rotation);
Nesse caso, basta colocar como 3º argumento a rotação do objeto, comumente a gente coloca Quaternion.identity se não quer interferir na rotação do objeto.
Link de referência das sobrecargas: https://docs.unity3d.com/ScriptReference/Object.Instantiate.html
Re: [RESOLVIDO] Erro com "Instantiate"
Estranho, deveria funcionar.
Tente fazer assim:
Tente fazer assim:
- Código:
GameObject _flashlight = Instantiate (flashLightPickupObject, dropPos.position, Quaternion.identity);
Re: [RESOLVIDO] Erro com "Instantiate"
Deu o seguinte erro : Cannot implicitly convert type `UnityEngine.Object' to `UnityEngine.GameObject'. An explicit conversion exists (are you missing a cast?)MayLeone escreveu:Estranho, deveria funcionar.
Tente fazer assim:
- Código:
GameObject _flashlight = Instantiate (flashLightPickupObject, dropPos.position, Quaternion.identity);
Re: [RESOLVIDO] Erro com "Instantiate"
Faltou o casting, achei que as versões novas do Unity não precisava mais, mas você pode fazer isso:
- Código:
GameObject _flashlight = Instantiate (flashLightPickupObject, dropPos.position, Quaternion.identity) as GameObject;
Re: [RESOLVIDO] Erro com "Instantiate"
Funcionouu!! Muito ObrigadoMayLeone escreveu:Faltou o casting, achei que as versões novas do Unity não precisava mais, mas você pode fazer isso:
- Código:
GameObject _flashlight = Instantiate (flashLightPickupObject, dropPos.position, Quaternion.identity) as GameObject;
Tópicos semelhantes
» [RESOLVIDO] Ajuda com Instantiate e SetParent
» instantiate is null (Instantiate Resources.Load)
» [RESOLVIDO] Erro
» [RESOLVIDO] erro de dll's
» [RESOLVIDO] Erro Som.
» instantiate is null (Instantiate Resources.Load)
» [RESOLVIDO] Erro
» [RESOLVIDO] erro de dll's
» [RESOLVIDO] Erro Som.
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos