GetComponent<Interface>

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);
		}
	}

hmm, i don’t speak french …

I see… is translated! :stuck_out_tongue: