示例#1
0
    public Node NPCBehavior_CasualConversation(NPCBehavior agentA, NPCBehavior agentB)
    {
        return(new Sequence(
                   agentB.NPCBehavior_GoToAtDistance(agentA.transform, 1.5f, false),
                   agentB.NPCBehavior_OrientTowards(agentA.transform),
                   agentB.NPCBehavior_LookAt(agentA.transform, true),
                   agentB.NPCBehavior_DoGesture(GESTURE_CODE.WAVE_HELLO),
                   agentA.NPCBehavior_OrientTowards(agentB.transform),
                   agentA.NPCBehavior_LookAt(agentB.transform, true),
                   new DecoratorLoop(
                       new SelectorParallel(
                           new SequenceShuffle(
                               agentA.NPCBehavior_DoGesture(GESTURE_CODE.TALK_SHORT),
                               agentB.NPCBehavior_DoGesture(GESTURE_CODE.TALK_LONG),
                               agentA.NPCBehavior_DoGesture(GESTURE_CODE.ACKNOWLEDGE),
                               agentA.NPCBehavior_DoGesture(GESTURE_CODE.HURRAY),
                               agentA.NPCBehavior_DoGesture(GESTURE_CODE.DRUNK)
                               ),
                           new SequenceShuffle(
                               agentA.NPCBehavior_DoGesture(GESTURE_CODE.PHONEME_A),
                               agentB.NPCBehavior_DoGesture(GESTURE_CODE.PHONEME_E),
                               agentA.NPCBehavior_DoGesture(GESTURE_CODE.PHONEME_O),
                               agentA.NPCBehavior_DoGesture(GESTURE_CODE.PHONEME_U),
                               agentA.NPCBehavior_DoGesture(GESTURE_CODE.PHONEME_P)
                               )
                           )

                       ),
                   agentB.NPCBehavior_LookAt(null, false),
                   agentA.NPCBehavior_LookAt(null, false),
                   agentB.NPCBehavior_DoGesture(GESTURE_CODE.WAVE_HELLO)
                   ));
    }