Utilisations: Pour les situations basiques
où vous souhaitez désactiver un trigger, ou plus
précisément, un event basé sur ce trigger,
pour une période de temps ou définitivement. Il
existe quatre méthodes pour faire ceci.
*Note : En réalité, vous ne désactivez
pas le trigger lui-même mais uniquement les events dans
Kismet.
Utilisation Unique: Supposons que vous avez
un trigger associé à un event Touch et que vous
souhaitiez qu'il ne se déclenche qu'une fois, la manière
la plus simple est de régler le MaxTriggerCount de l'event
à 1 (ce qu'il est par défaut). Si vous souhaitez
également utiliser la sortie Untouched une fois alors
mettez cette valeur sur 2 (1 pour le touched et 1 pour le untouched)..
Utilisations Multiples: Il y a 3 méthodes
de base pour ça. La première est avec des Toggles,
la seconde avec des Gates et la dernière avec des Variables.
Toggles: Basiquement, le système va déclencher
un event Touch suivi d'un Toggle qui désactivera l'event,
et sera ensuite réactivé par un Delay dont la
durée correspond au temps total de ce que vous voulez
faire avec cet event. N'oubliez pas de mettre le MaxTriggerCount
à 0 pour pouvoir utiliser l'event autant de fois que
vous le souhaitez:
|
|
Gates: Les gates sont des outils fantastiques.
Dans ce cas là, nous allons utiliser les sorties touched
et untouched d'un event Touch. Supposons que nous voulions avoir
quelque chose qui puisse être utilisé mais qui
ne pourra l'être que si un joueur est en dehors d'une
certaine zone. Nous allons créer un event Trigger Touch
et un event Trigger Used et ajouter une Gate. Dans cet exemple,
en fait nous n'allons pas réellement désactiver
l'event. Nous allons permettre au trigger de se déclencher
autant de fois qu'il veut mais nous allons arrêter le
signal qui en sort jusqu'à ce que le joueur quitte la
zone et donc que le Untouched se déclenche, rouvrant
la Gate et laissant donc passer le signal venant du Used qui
déclenchera le Delay. Ici encore, le Delay correspond
au temps total de ve que voulez faire avec ce trigger. N'oubliez
pas de mettre le MaxTriggerCount à 0 pour pouvoir utiliser
l'event autant de fois que vous le souhaitez:
|
|
Variables: Il y a quelques façons de faire ceci.
Basiquement, nous allons utiliser des variables pour déterminer
si un joueur est dans une zone et si oui, permettre à
un event Used de se déclencher.
Si vous êtes dans un environnement simple avec seulement
un joueur, alors vous pouvez utiliser des variables Booleans.
Réglons tout ca pour que True = Inside (à l'intérieur)
et False = Outside (à l'extérieur). Le joueur
va être à l'extérieur par défaut
donc la valeur initiale doit être False. Lorsque le joueur
essaye d'utiliser le Used, nous allons comparer le booléen
(Compare Bool) et
si celui ci est à Inside, alors nous allons permettre
au signal de passer. Si le joueur est à l'extérieur,
nous ne faisons rien:
|
|
Si nous avons besoin de gérer plusieurs joueurs, les
booléens ne seront pas adaptés. Donc on va les
changer en Int (nombres
entiers). A chaque fois qu'un joueur entre dans une zone, le
Int Counter va s'incrémenter de 1 et se décrémenter
de 1 à chaque fois qu'un joueur sort. Lorsque le joueur
utilise le Used, nous allons comparer les valeurs A et B avec
un Compare Int, A
étant la valeur modifiée par les Int Counters.
Avec B mis à 1, si le valeur de A est supérieure
ou égale à 1, la sortie A>=B va laisser passé
le signal du Used:
|
|
Aucune de ces solutions n'est meilleure ou pire que les autres.
Vous aurez juste à vous demander laquelle est la plus
adaptée à ce que vous souhaitez faire.
|