Question by
whiterubix · May 04, 2016 at 05:27 PM ·
objectvector3conversion
Assets/Prefab/Tree.cs(63,9): error CS1502: The best overloaded method match for `UnityEngine.Object.Instantiate(UnityEngine.Object, UnityEngine.Vector3, UnityEngine.Quaternion)' has some invalid arguments how to solve it??
using UnityEngine; using System.Collections;
public class Tree : MonoBehaviour {
public int Health = 5;
public Transform logs;
public Transform coconut;
public GameObject tree;
public Camera myCamera;
public int speed = 8;
void Start () {
tree = this.gameObject;
GetComponent <Rigidbody>().isKinematic = true;
myCamera = GameObject.FindObjectOfType<Camera>();
}
// Update is called once per frame
void Update () {
if(Health > 0)
{
if(Vector3.Distance(transform.position, myCamera.transform.root.transform.position) < 10f)
{
if(Input.GetKeyDown(KeyCode.R) && WeaponSwitching.check == true)
{
Ray ray = new Ray(myCamera.transform.position,myCamera.transform.forward);
RaycastHit hit;
if(Physics.Raycast(ray,out hit,10f))
{
if(hit.collider.gameObject == gameObject)
{
--Health;
}
}
}
}
}
if(Health <= 0)
{
GetComponent <Rigidbody>().isKinematic = false;
GetComponent <Rigidbody>().AddForce(transform.forward * speed);
DestroyTree();
}
}
void DestroyTree()
{
wait ();
Destroy(tree);
Vector3 position = Vector3(Random.Range(-1.0, 1.0), 0, Random.Range(-1.0, 1.0));
Instantiate(logs, tree.transform.position + Vector3(0,0,0) + position, Quaternion.identity);
Instantiate(logs, tree.transform.position + Vector3(2,2,0) + position, Quaternion.identity);
Instantiate(logs, tree.transform.position + Vector3(5,5,0) + position, Quaternion.identity);
Instantiate(coconut, tree,transform.position + Vector3(0,0,0) + position, Quaternion.identity);
Instantiate(coconut, tree.transform.position + Vector3(2,2,0) + position, Quaternion.identity);
Instantiate(coconut, tree.transform.position + Vector3(5,5,0) + position, Quaternion.identity);
}
IEnumerator wait()
{
yield return new WaitForSeconds (7.0f);
}
}
Comment
Answer by Jessespike · May 04, 2016 at 06:29 PM
Vector3s need to be created before being used. Note the "new" keyword:
Instantiate(logs, tree.transform.position + new Vector3(0,0,0) + position, Quaternion.identity);
Your answer
Follow this Question
Related Questions
How to move object a from in front of object b to in front of object c and transfer orientation? 1 Answer
Why does my object's position change when I rotate it? 0 Answers
HOW TO MOVE A OBJECT TO ANOTHER OBJECT SMOOTHLY NOT INSTANTLY? 0 Answers
How do i get the angle of two Vector 3's? 1 Answer
Detect if an object is bigger or smaller than you when you collide with it. 1 Answer