public PlayerRobotAdapter(Entitas.IContexts contexts, PlayerEntity entity, NavMeshAgent navMeshAgent,
                           IRobotUserCmdProvider robotUserCmdProvider, IRobotSpeedInfo robotSpeedInfo,
                           IUserCmdGenerator userCmdGenerator, IRobotConfig robotConfig)
 {
     NavMeshAgent         = navMeshAgent;
     Entity               = entity;
     RobotUserCmdProvider = robotUserCmdProvider;
     RobotSpeedInfo       = robotSpeedInfo;
     UserCmdGenerator     = userCmdGenerator;
     RobotConfig          = robotConfig;
     GameContexts         = contexts;
 }
Example #2
0
        public static void CreateRobotPlayerEntity(Contexts contexts, PlayerEntity player, IRobotConfig robotConfig,
                                                   IRobotUserCmdProvider robotUserCmdProvider, IUserCmdGenerator userCmdGenerator)
        {
            var navMeshAgent = player.RootGo().AddComponent <NavMeshAgent>();
            var behaviorTree = player.RootGo().AddComponent <BehaviorTree>();

            navMeshAgent.autoTraverseOffMeshLink = false;
            navMeshAgent.updatePosition          = false;
            navMeshAgent.updateRotation          = false;
            navMeshAgent.updateUpAxis            = false;
            navMeshAgent.stoppingDistance        = 0.1f;
            behaviorTree.enabled = false;

            var robot = new PlayerRobotAdapter(contexts, player, navMeshAgent, robotUserCmdProvider,
                                               new DummyRobotSpeedInfo(),
                                               userCmdGenerator, new DummyRobotConfig());

            player.AddRobot(robot);
        }