Bonjour, je veux partager avec vous ce code.
Elle améliore la fonction GetComponent.
C’est l’équivalent d’une méthode GetComponent<n’importe quel critera>
Hello, I want to share with you this code.
It improves the function GetComponent .
This is equivalent to a method GetComponent
/// <summary>Dans Unity, on ne peut pas appeler un composant par son interface.
/// ICallbackableComponent paille à ce problème</summary>
public interface ICallbackableComponent {
void Callback(CallbackMessenger messenger);
}
/// <summary>Le CallbackMessenger fournit les critéres de requetes et l'emplacement
/// pour eventuellement participer à la réponse</summary>
public class CallbackMessenger {
protected string callbackCode = "";
public string CallbackCode { get { return callbackCode; }}
protected IList<ICallbackableComponent> responders = null;
public CallbackMessenger(string callbackCode, IList<ICallbackableComponent> recupList) {
this.callbackCode = callbackCode;
this.responders = recupList;
}
public void AttacherAuMessenger(ICallbackableComponent participant) {
responders.Add(participant);
}
}
public class ExempleOfCallbackableComponent : ICallbackableComponent /*, MyInterface*/ {
#region ICallbackableComponent implementation
public void Callback (CallbackMessenger messenger) {
if (messenger.CallbackCode.Equals("MyInterface")) messenger.AttacherAuMessenger(this);
}
#endregion
}
public class ExempleOfUser {
public void Update() {
// ....
IList<ICallbackableComponent> result = new List<ICallbackableComponent>();
CallbackMessenger messenger = new CallbackMessenger("MyInterface", result);
SendMessage("Callback", messenger);
}
}