Hey-- here is what I’m doing-- it worked for me, but I wasn’t sure if it was /right/.
class Player extend MonoBehaviour
{
private var isHuman;
public function SetIsHuman (is : boolean)
{
isHuman = is;
}
public function IsHuman () : boolean
{
return isHuman;
}
}
class HumanPlayer extends Player
{
public function SomethingHumanSpecific : void {}
}
class AIPlayer extends Player
{
public function SomethingAISpecific () : void {}
}
class GameController extends MonoBehaviour
{
var aPlayer : Player;
function Update ()
{
if (aPlayer.IsHuman())
{
var humanPlayer : HumanPlayer = aPlayer.GetComponent(HumanPlayer) as HumanPlayer;
humanPlayer.SomethingHumanSpecific();
}
else
{
var aiPlayer : AIPlayer = aPlayer.GetComponent(AIPlayer) as AIPlayer;
aiPlayer.SomethingAISpecific();
}
}
}
Is there a better way of doing this (maybe an instanceof)?