Unity3D sử dụng một hệ thống dựa trên thành phần theo mặc định. Nó là tuyệt vời để tạo các thực thể trò chơi từ một tệp văn bản và tiêm phụ thuộc.
function createEnemy() {
// extract AI type for enemy
// definition is a custom structure holding parameters to create the enemy
var aitypename = definition.ai;
// AIType can be an interface or abstract class
// you can create a component from a string or from a type
var ai : AIType = this.gameObject.AddComponent(aitypename);
ai.setup(definition.ai_settings);
// set rule for enemy when it is destroyed
this.gameObject.AddComponent(definition.when_destoryed);
}
Những thành phần đó có thể trông như thế này
class AI_Scout extends AIType
{
// called per update-frame on the game-object with this script
public function Update() {
// run Scout AI here
}
}
class Spawn_Ammo_On_Destroyed extends When_Destroyed
{
// automatically called by the engine when the game object this script is attached to is
// destroyed
public function OnDestroyed() {
// spawn ammo
}
}