I’m passing in a hit.collider variable that should be a Collider object in my Array. Yet when I go to access my Collider object in my array it brings an error: “GetComponent is not a member of Object”. I’m confused as to why when I add the Collider to the Array it is a Collider type, however when I access later it is now an Object, and I cannot use the GetComponent.
#pragma strict
public var world_Selection_Start:Vector3;
public var screen_Selection_Start:Vector2;
public var selectables = new Array();
function Start () {
}
function Update () {
if(Input.GetMouseButtonDown(0))
{
var ray: Ray = Camera.main.ScreenPointToRay(Input.mousePosition);
var hit: RaycastHit;
var unit_Layermask = 1<<10;
var ground_Layermask = 1 << 8;
//Ray Hit Ground
if(Physics.Raycast(ray, hit, Mathf.Infinity, ground_Layermask)){
clearSelectables();
world_Selection_Start = hit.point;
}
//Ray Hit Units
if(Physics.Raycast(ray, hit, Mathf.Infinity, unit_Layermask)){
clearSelectables();
hit.collider.GetComponent(Selectable).selected = true;
selectables.Add(hit.collider);
}
screen_Selection_Start = Input.mousePosition;
}
}
function clearSelectables(){
if(!Input.GetKey("left shift") && !Input.GetKey("right shift")){
for(var i = 0; i < selectables.length; i++){
selectables*.GetComponent(Selectable).selected = false;*
}
}
}
UPDATE
i just casted it to a Collider object and it seems to work:
(selectables as Collider).GetComponent…
If anyone else has this problem ask cause I tried just about everything haha