Ejemplo n.º 1
0
        public override void Start()
        {
            navMeshFilePath = GetScriptCustomAttribute("NavMesh");

            dustPostObject = Find("Dust Post");

            Console.WriteLine(navMeshFilePath);

            if (!string.IsNullOrEmpty(navMeshFilePath))
            {
                Console.WriteLine(navMeshFilePath);
                string resolvedPath = VirtualFileSystem.ResolvePath(navMeshFilePath);
                m_aimNavMesh = AimNavMeshGenerator.Instance.GenerateNavMeshFromFile(resolvedPath);
            }

            AimSequenceNode sequence = new AimSequenceNode();

            AimSelectorNode dustGetSelector = new AimSelectorNode();
            AimBehaviourTreeConditionNode dustGetCondition = new AimBehaviourTreeConditionNode(ref m_dustPathGenerated);
            AimSequenceNode  dustGetSequence     = new AimSequenceNode();
            AimExecutionNode generateDustPosTask = new AimExecutionNode(GenerateDustPosition);
            AimExecutionNode getPathTask         = new AimExecutionNode(GetPathToDust);

            AimSelectorNode dustCollectSelector = new AimSelectorNode();
            AimBehaviourTreeConditionNode dustCollectCondition = new AimBehaviourTreeConditionNode(ref m_dustCollected);
            AimSequenceNode  dustCollectSequence  = new AimSequenceNode();
            AimExecutionNode moveTorwardsDustTask = new AimExecutionNode(MoveToDust);
            AimExecutionNode collectDustTask      = new AimExecutionNode(CollectDust);

            aimBehaviourTree = new AimBehaviourTree();
            aimBehaviourTree.SetRootNode(sequence);

            sequence.AddChild(dustGetSelector);
            dustGetSelector.AddChild(dustGetCondition);

            dustGetSelector.AddChild(dustGetSequence);
            dustGetSequence.AddChild(generateDustPosTask);
            dustGetSequence.AddChild(getPathTask);

            sequence.AddChild(dustCollectSelector);
            dustCollectSelector.AddChild(dustCollectCondition);

            dustCollectSelector.AddChild(dustCollectSequence);
            dustCollectSequence.AddChild(moveTorwardsDustTask);
            dustCollectSequence.AddChild(collectDustTask);

            m_agent = AimAgentFactory.Instance.CreateAgent <AimAgent>();
            m_agent.transform.position = new vec3(gameObject.transform.position);
        }
Ejemplo n.º 2
0
 public abstract void Update(AimAgent agent);
Ejemplo n.º 3
0
 public override void Update(AimAgent agent)
 {
 }