- Home /
This question was
closed Nov 03, 2012 at 12:41 PM by
Griffo for the following reason:
Solved
Question by
Griffo · Nov 03, 2012 at 12:02 PM ·
physicscollidersoverlapspherephysics.overlapsphere
Physics.OverlapSphere
Hi, can I use
Physics.OverlapSphere
to detect a character controllers instead of colliders? As the code below gives error - InvalidCastException: Cannot cast from source type to destination type.
var InRange : CharacterController[] = Physics.OverlapSphere(enemylocation, blastRadius);
Thanks.
Comment
This is what I done in the end and works fine now -
// Apply damage to the Enemy acording to where they are in the blast radius
function AreaDamageEnemies(location : Vector3, radius : int , damage : int ){
var objectsInRange : Collider[] = Physics.OverlapSphere(location, radius);
for (var col : Collider in objectsInRange){
while(i < objectsInRange.length){ // Go through the objectsInRange array (objects in the Physics.OverlapSphere radius)
while(j < myArray.length){ // Check through the myArray array every time the objectsInRange array increases by 1
if(objectsInRange[i].name.Contains(myArray[j])){ // If there is a match apply damage in respect to where they are in the blast radius
// Linear falloff of effect
var proximity : float = (location - objectsInRange[i].transform.position).magnitude;
var effect : float = 1 - (proximity / radius);
var enemyNumber = ConvertToInt(objectsInRange[i].tag); // Extract the number from .name or .tag
// Apply damage to the Enemy
switch (j){
case 0:
globalVarsScript.terroristType1Health[enemyNumber] -= (damage * effect * rpgAffectOnTerroristType1);
break;
case 1:
globalVarsScript.terroristType2Health[enemyNumber] -= (damage * effect * rpgAffectOnTerroristType2);
break;
case 2:
globalVarsScript.terroristType3Health[enemyNumber] -= (damage * effect * rpgAffectOnTerroristType3);
break;
case 3:
globalVarsScript.terroristType4Health[enemyNumber] -= (damage * effect * rpgAffectOnTerroristType4);
break;
case 4:
globalVarsScript.sentryGunHealth[enemyNumber] -= (damage * effect * rpgAffectOnSentryGun);
break;
case 5:
globalVarsScript.droidBoxHealth[enemyNumber] -= (damage * effect * rpgAffectOnDroid);
break;
case 6:
globalVarsScript.droidCylinderHealth[enemyNumber] -= (damage * effect * rpgAffectOnDroid);
break;
case 7:
globalVarsScript.droidSphereHealth[enemyNumber] -= (damage * effect * rpgAffectOnDroid);
break;
case 8:
globalVarsScript.mechHealth[enemyNumber] -= (damage * effect * rpgAffectOn$$anonymous$$ech);
break;
case 9:
globalVarsScript.playerHealth -= (effect * rpgAffectOnPlayer);
break;
default:
Debug.Log ("Unrecognized Option");
break;
}
}
j++;
}
i++;
j = 0; // Reset the myArray While loop
}
}
}
Follow this Question
Related Questions
OverlapSphere Doesn't Return Objects Inside? 0 Answers
Not all sides of a cube collide properly( with pic) 2 Answers
Box vs Capsule collider for player 1 Answer
Hinge Joint Effected by Colliders 0 Answers
Problem with Colliders 1 Answer