Commandes de personnage

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

L'instance ControllerManager gère la gestion de la rotation simulée pour son RootPart attribué. Avec ControllerPartSensors, il peut être utilisé pour construire un manettede personnage basé sur la physique.

Configuration du noyau

ControllerManager nécessite un BasePart pour être utilisé comme racine. Les forces de déplacement et la sensibilité des parties seront sur cette partie.

  1. Choisissez un Part ou MeshPart et nommez-le RootPart .

  2. Group the part as a Model instance for organization along with the other components.

  3. Ajoutez une instance de ControllerManager au modèlisation. Si ControllerManager n'apparaît pas initialement dans le menu d'insertion d'objets, déésélectionnez «Afficher uniquement les objets recommandés» dans les paramètres d'insertion du menu 1> .

    ControllerManager and RootPart inside model

Paramètres capteurs

Un ControllerPartSensor détecte les parties avec le même code que l'utilise le Humanoid pour détecter les planchers et les escaliers.

  1. Insérez un ControllerPartSensor en tant qu'enfant de RootPart et renommez-le en GroundSensor pour plus de facilité d'identification de son but. Puis, dans la 1> fenêtre propriétés1>, définissez

    GroundSensor as child of RootPart
    GroundSensor properties
  2. Insérez un autre ControllerPartSensor en tant qu'enfant de RootPart et renommez-le en ClimbSensor . Puis, dans la 1> fenêtre propriétés1>, configurez sa propriété 4> Class.ControllerPartSensor.SearchDistance|SearchDistance

    ClimbSensor as child of RootPart
    ClimbSensor properties

Paramètre du contrôleur

Les instances de contrôleur comme GroundController et ClimbController indiquent à la partie gérée comment interagir avec le monde, en travaillant avec les capteurs que vous avez configurés dans Sensor Setup.

  1. Insérez à la fois un GroundController et un ClimbController en tant qu'enfants du ControllerManager.

    GroundController and ClimbController as children of ControllerManager
  2. Sélectionnez la nouvelle instance GroundController et, dans la fenêtre Propriétés, définissez sa propriété GroundOffset sur une valeur à laquelle la partie

    GroundController properties

Liaison des références

Pour terminer le jeu de base, vous devrez lier diverses propriétés de l'instance ControllerManager à des objets dans le principal Model .

  1. Sélectionnez l'instance ControllerManager.

    ControllerManager selected in Explorer window
  2. Dans la Fenêtre propriétés, cliquez sur chacune des propriétés suivantes, puis, dans la Fenêtre Explorateur, cliquez sur la instance correspondante pour terminer le lier.

    1. Reliez la propriété ActiveController à l'instance GroundController .
    2. Liaison de la propriété RootPart à la partie que vous avez nommée RootPart .
    3. Liaison de la propriété ClimbSensor à l'instance ClimbSensor .
    4. Liaison de la propriété GroundSensor à l'instance GroundSensor .
    ControllerManager properties linked to instances within overall model

Test

Avec capteurs et contrôleurs en emplacement, et avec références liées, vous pouvez tester le contrôleur dans Studio.

  1. Démarrez un playtest en utilisant le mode courir ( F8 ) puisque vous n'avez pas besoin d'insérer votre personnage d'avatar dans ce scénario.

    Rapid playtest options in Test tab of Studio
  2. RootPart devrait flotter au-dessus du sol à la valeur GroundController.GroundOffset que vous avez définie dans ajouter des contrôleurs. Il devrait également tourner pour s'aligner avec le vécteur 0> Class.ControllerManager.FacingDirection0>.

    Character levitating above ground at GroundOffset, facing in direction of FacingDirection vector
  3. Expérimentez avec différentes directions de déplacement et de rotation en modifiant les temps d'exécutionMovingDirection et

    ControllerManager properties for moving and facing direction
    Gestionnaire du contrôleur
    GroundController properties for acceleration, deceleration, and ground offset
    GroundController

Capteurs personnalisés

Les options ControllerPartSensor.SensorMode de Floor et Ladder exécutent le code de 1>Class.Humanoid1> exact, vous permettant d'utiliser les parties pour la compatibilité avec les versions antérieures. Cependant, vous pouvez également personnaliser la façon et le moment

  1. Switch the ControllerPartSensor.UpdateType from OnRead to Manual .

    • OnRead déclenche les propriétés de sortie pour mettre à jour les propriétés correspondantes à votre SensorMode chaque fois que vous les lisez. Cela met essentiellement le capteur en un mode « seulement de lecture » où tout ce que vous écrivez à ces propriétés devient écrasé par son comportement de sensing interne.
    • Manual éteint le comportement de sensing interne. Les propriétés de sortie sont gratuites pour que vous écrivez comme vous le souhaitez et que le SensorMode ne fait rien.
  2. Créez un script qui exécute votre propre logique de sensing et écrit les sorties dans vos propriétés de sortie sensor. Typiquement, vous utiliserez une requête spatiale comme WorldRoot:Raycast() ou WorldRoot:Blockcast() qui renvoie un résultat RaycastResult. Votre script peut alors prendre les propriétés de sortie et les définir sur les équivalents sensor:

    Notez que vous devrez gérer la fréquence à laquelle vos requêtes s'exécutent et mettre à jour leur instance de capteur.

  3. Le ControllerManager continuera d'utiliser les capteurs qu'il a été assignés, en prenant les données que vous lui apportez.