I am attempting to reference/instance a game object when OnMouseDown conditions are met. The following code is the general idea of what I'm trying to do: Right now I get an error about the object not being referenced Code (javascript): var onHoverImage : Texture; var onClickImage : Texture; var iconQuad : GameObject; var hoverColor : Color; var clickColor : Color; var linkObject : GameObject; private var parentColor; private var pTransform : Transform; private var childCount: int; private var offColor : Color; private var offImage : Texture; private var selected : boolean; private var objCollider : Collider; private var numChild : int; private var segLength : float = 12.00; private var nodeDistance : float; function OnMouseDown() { var tempArray : GameObject[]; var tempArrayIndex : int = 0; var tObject : Transform; var child : int ; var parentPos : Vector3 = gameObject.transform.position; if(selected == false) selected = true; else if(selected == true) { selected = false; iconQuad.renderer.material.mainTexture = offImage; renderer.material.color = offColor; } renderer.material.color = clickColor; iconQuad.renderer.material.mainTexture = onClickImage; for each(Transform in transform) { tObject = Transform; if(Transform != iconQuad.transform) { if(selected == true) { tObject.gameObject.SetActive(true); // Get Distance to child object nodeDistance = Vector3.Distance(tObject.position, transform.position); print("Node Distance : " + nodeDistance); // Instantiate linkObject; object length (z) is 12 // tempArray[tempArrayIndex] = Instantiate(linkObject, transform.position,transform.rotation); tempArray[tempArrayIndex] = PrefabUtility.InstantiatePrefab(linkObject as instance); //Debug.Log(Path.GetFileNameWithoutExtension(linkObject)); // Rotate to face child tempArray[tempArrayIndex].transform.LookAt(tObject.position); tempArrayIndex++; } else if(selected == false) { tObject.gameObject.SetActive(false); } } } } All help would be very much appreciated
Transform is a class name, similar to Vector3. On line 46 you are saing tObject = Transform (making it equal to a class). On line 53 you are then saying tObject.gameObject, trying to access the gameObject from the Transform class, which will give you problems because Transform is just a class, and not a transform object that will have a gameObject. (similar to saying Vector3.x) I don't use foreach often, but you should double check the correct way to use it. Goodluck!