官术网_书友最值得收藏!

Implementing custom messages

We've created the Messaging System, but an example of how to use it would help us wrap our heads around the concept. Let's start by defining a pair of simple classes that derive from Message, which we can use to create a new enemy, as well as notify other parts of our codebase that an enemy was created:

public class CreateEnemyMessage : Message {}

public class EnemyCreatedMessage : Message {

public readonly GameObject enemyObject;
public readonly string enemyName;

public EnemyCreatedMessage(GameObject enemyObject, string enemyName) {
this.enemyObject = enemyObject;
this.enemyName = enemyName;
}
}

CreateEnemyMessage is the simplest form of message that contains no special data, while EnemyCreatedMessage will contain a reference to the enemy's GameObject as well as its name. Good practice for message objects is to make their member variables not only public, but also readonly. This ensures that the data is easily accessible but cannot be changed after the object's construction. This safeguards the content of our messages against being altered, as they're passed between one listener and another.

主站蜘蛛池模板: 宁陵县| 桓台县| 思南县| 界首市| 北票市| 岫岩| 徐水县| 米脂县| 丰都县| 盱眙县| 延庆县| 察隅县| 和政县| 垫江县| 海伦市| 二手房| 龙里县| 莱芜市| 禹州市| 资讯 | 樟树市| 德清县| 台东市| 永福县| 永仁县| 辉县市| 岱山县| 当涂县| 西藏| 石家庄市| 宜川县| 宁城县| 兰溪市| 孟连| 刚察县| 湟源县| 积石山| 工布江达县| 新干县| 台江县| 杂多县|