Ejemplo n.º 1
0
    public override void Initialize()
    {
        base.Initialize();

        tetrisGame.Init(this);
        behaviorParameters = GetComponent <BehaviorParameters>();
    }
    /// <summary>
    /// Initialize the agent's parameters when it is invoked.
    /// </summary>
    public override void Initialize()
    {
        m_BehaviorParameters = gameObject.GetComponent <BehaviorParameters>();
        if (m_BehaviorParameters.TeamId == (int)Team.Red)
        {
            team = Team.Red;
        }
        else
        {
            team = Team.Blue;
        }

        agentVirtualCam.enabled = false;
        // Register the agent to the Team Manager's activeAgents list.
        var activeAgent = new ActiveAgents {
            agentScript = this,
            agentCam    = agentVirtualCam,
            checkpoint  = 0
        };

        teamManager.activeAgents.Add(activeAgent);
        m_AgentIndex = teamManager.activeAgents.IndexOf(activeAgent);

        TryGetComponent(out engine.RB);
        lastPosition = this.transform.position;
    }
Ejemplo n.º 3
0
        internal void CleanupActionAsset()
        {
            InputSystem.RemoveLayout(mlAgentsLayoutName);
            if (!ReferenceEquals(m_Device, null))
            {
                InputSystem.RemoveDevice(m_Device);
            }

            if (!ReferenceEquals(m_InputAsset, null) &&
                m_InputAsset.FindControlSchemeIndex(mlAgentsControlSchemeName) != -1)
            {
                m_InputAsset.RemoveControlScheme(mlAgentsControlSchemeName);
            }

            if (m_Actuators != null)
            {
                Array.Clear(m_Actuators, 0, m_Actuators.Length);
            }

            if (!ReferenceEquals(m_BehaviorParameters, null))
            {
                m_BehaviorParameters.OnPolicyUpdated -= UpdateDeviceBinding;
            }

            m_InputAsset         = null;
            m_PlayerInput        = null;
            m_BehaviorParameters = null;
            m_Device             = null;
        }
Ejemplo n.º 4
0
    public void SetPlayerType()
    {
        if (!playerAgent)
        {
            playerData.Type = PlayerType.Human;
            return;
        }

        BehaviorParameters behavior = playerAgent.GetComponent <BehaviorParameters>();

        switch (behavior.BehaviorType)
        {
        case BehaviorType.HeuristicOnly:
            playerData.Type = PlayerType.Human;
            break;

        case BehaviorType.InferenceOnly:
            playerData.Type = PlayerType.AI;
            break;

        case BehaviorType.Default:
            if (behavior.Model != null)
            {
                playerData.Type = PlayerType.AI;
            }
            else
            {
                playerData.Type = PlayerType.AI;
            }
            break;
        }
    }
Ejemplo n.º 5
0
        // ------------------------------------------------------------------------------------------------------------
        //                                Unity Lifecycle calls
        // ------------------------------------------------------------------------------------------------------------

        private void Awake()
        {
            rocketRb           = GetComponent <Rigidbody>();
            rocketControl      = GetComponent <Rocket>();
            simulationState    = GetComponent <SimulationState>();
            behavourParameters = GetComponent <BehaviorParameters>();
        }
Ejemplo n.º 6
0
    public override void Initialize()
    {
        m_BehaviorParameters = gameObject.GetComponent <BehaviorParameters>();
        team        = Team.Blue;
        m_Transform = new Vector3(transform.position.x + 0f, transform.position.y + 0f, transform.position.z + 0f);

        m_Rigidbody = GetComponent <Rigidbody>();
        m_Ball      = Ball.GetComponent <Rigidbody>();

        m_Rigidbody = GetComponent <Rigidbody>();
        m_Ball      = Ball.GetComponent <Rigidbody>();

        var ps = new PlayStates
        {
            CarAgent         = m_Rigidbody,
            startingPosition = transform.position,
            CarAgentScript   = this,
        };

        area.playStates.Add(ps);
        m_PlayerIndex = area.playStates.IndexOf(ps);
        ps.playerIndx = m_PlayerIndex;



        areaBounds = Stadium.GetComponent <Collider>().bounds;
    }
Ejemplo n.º 7
0
    void Awake()
    {
        gameManager   = GetComponentInParent <GameManager>();
        myStats       = GetComponent <CharacterStats>();
        baseAttacks   = new Dictionary <int, BaseAttack>();
        target        = gameManager.player;
        targetStats   = target.GetComponent <CharacterStats>();
        actionManager = gameManager.bossActionManager;
        PopulateAttackDictionary(actionManager.availableAttacks);
        arenaName            = transform.parent.name.Replace(" ", "");
        timeOnAttackSelected = -1;
        attackSelected       = null;
        timeForNextAttack    = 0;
        vulnerabilityTime    = 0;
        distance             = Vector3.Distance(target.transform.localPosition, transform.localPosition);
        lightAttackDone      = 0;
        heavyAttackDoneMiss  = 0;
        heavyAttackDoneHit   = 0;
        poisonAttackDone     = 0;
        stunAttackDoneMiss   = 0;
        stunAttackDoneHit    = 0;
        gustAttackDone       = 0;

        behaviorParameters = GetComponent <BehaviorParameters>();
        counter            = 1;
    }
Ejemplo n.º 8
0
    public override void InitializeAgent()
    {
        m_BehaviorParameters = gameObject.GetComponent <BehaviorParameters>();
        //outlet したteam idから、初期ポジションを場合分け
        if (m_BehaviorParameters.m_TeamID == (int)Team.Blue)
        {
            team        = Team.Blue;
            m_Transform = new Vector3(transform.localPosition.x - 4f, .5f, transform.localPosition.z);
        }
        else
        {
            team        = Team.Purple;
            m_Transform = new Vector3(transform.localPosition.x + 4f, .5f, transform.localPosition.z);
        }

        agentRb = GetComponent <Rigidbody>();
        agentRb.maxAngularVelocity = 500;

        this.privateCanMoveCubeRb = GameObject.Find("canMoveObject").GetComponent <Rigidbody>();

        var playerState = new PlayerState
        {
            agentRb     = agentRb,
            startingPos = transform.localPosition,
            agentScript = this,
        };

        area.playerStates.Add(playerState);
        m_PlayerIndex           = area.playerStates.IndexOf(playerState);
        playerState.playerIndex = m_PlayerIndex;
    }
Ejemplo n.º 9
0
    public override void InitializeAgent()
    {
        base.InitializeAgent();
        m_BehaviorParameters = gameObject.GetComponent <BehaviorParameters>();
        if (m_BehaviorParameters.m_TeamID == (int)Team.Blue)
        {
            team        = Team.Blue;
            m_Transform = new Vector3(transform.position.x - 4f, .5f, transform.position.z);
        }
        else
        {
            team        = Team.Purple;
            m_Transform = new Vector3(transform.position.x + 4f, .5f, transform.position.z);
        }
        m_SoccerSettings           = FindObjectOfType <SoccerSettings>();
        agentRb                    = GetComponent <Rigidbody>();
        agentRb.maxAngularVelocity = 500;

        var playerState = new PlayerState
        {
            agentRb     = agentRb,
            startingPos = transform.position,
            agentScript = this,
        };

        area.playerStates.Add(playerState);
        m_PlayerIndex           = area.playerStates.IndexOf(playerState);
        playerState.playerIndex = m_PlayerIndex;
    }
Ejemplo n.º 10
0
    public override void Initialize()
    {
        m_BehaviorParameters = gameObject.GetComponent <BehaviorParameters>();

        if (blueTeamfull == false)
        {
            team        = Team.Blue;
            m_Transform = new Vector3(transform.position.x + 0f, transform.position.y + 0f, transform.position.z + 0f);
        }
        else if (blueTeamfull == true)
        {
            team        = Team.Orange;
            m_Transform = new Vector3(transform.position.x + 0f, transform.position.y + 0f, transform.position.z + 0f);
        }

        agentRb = GetComponent <Rigidbody>();
        m_Ball  = Ball.GetComponent <Rigidbody>();

        var ps = new PlayerState
        {
            agentRb     = agentRb,
            startingPos = transform.position,
            agentScript = this,
        };

        area.playerState.Add(ps);
        m_PlayerIndex  = area.playerState.IndexOf(ps);
        ps.playerIndex = m_PlayerIndex;
    }
Ejemplo n.º 11
0
        internal static IActuator[] CreateActuatorsFromMap(InputActionMap inputActionMap,
                                                           BehaviorParameters behaviorParameters,
                                                           InputDevice inputDevice,
                                                           InputActuatorEventContext context)
        {
            var actuators = new IActuator[inputActionMap.actions.Count];

            for (var i = 0; i < inputActionMap.actions.Count; i++)
            {
                var action       = inputActionMap.actions[i];
                var actionLayout = InputSystem.LoadLayout(action.expectedControlType);
                var adaptor      = (IRLActionInputAdaptor)Activator.CreateInstance(controlTypeToAdaptorType[actionLayout.type]);
                actuators[i] = new InputActionActuator(inputDevice, behaviorParameters, action, adaptor, context);

                // Reasonably, the input system starts adding numbers after the first none numbered name
                // is added.  So for device ID of 0, we use the empty string in the path.
                var path = $"{inputDevice?.path}{InputControlPath.Separator}{action.name}";
                action.AddBinding(path,
                                  action.interactions,
                                  action.processors,
                                  mlAgentsControlSchemeName);
                action.bindingMask = InputBinding.MaskByGroup(mlAgentsControlSchemeName);
            }
            return(actuators);
        }
    public override void Initialize()
    {
        originalPosition       = transform.localPosition;
        behaviorParameters     = GetComponent <BehaviorParameters>();
        carController          = GetComponent <CarController>();
        carControllerRigidBody = carController.GetComponent <Rigidbody>();
        carSpots = transform.parent.GetComponentInChildren <CarSpots>();

        ResetParkingLotArea();
    }
Ejemplo n.º 13
0
        public void Setup()
        {
            var go = new GameObject();

            m_BehaviorParameters = go.AddComponent <BehaviorParameters>();
            var action = new InputAction("action");

            m_Adaptor  = new TestAdaptor();
            m_Actuator = new InputActionActuator(null, m_BehaviorParameters, action, m_Adaptor, new InputActuatorEventContext(1, InputSystem.AddDevice <Gamepad>()));
        }
Ejemplo n.º 14
0
        public void Setup()
        {
            var go = new GameObject();

            m_BehaviorParameters = go.AddComponent <BehaviorParameters>();
            var action = new InputAction("action");

            m_Adaptor  = new TestAdaptor();
            m_Actuator = new InputActionActuator(null, m_BehaviorParameters, action, m_Adaptor);
        }
Ejemplo n.º 15
0
 public override void InitializeAgent()
 {
     if (behaviorParams == null)
     {
         behaviorParams = GetComponent <BehaviorParameters>();
     }
     if (behaviorParams == null)
     {
         Debug.LogError("Behavior params missing");
     }
 }
Ejemplo n.º 16
0
    public override void Initialize()
    {
        MaxStep = 10000;
        rb      = GetComponent <Rigidbody>();
        bps     = GetComponent <BehaviorParameters>();

        rb.maxAngularVelocity = 500.0f;
        //Team ID 추출
        team = (TEAM)bps.TeamId;
        InitPlayers();
    }
Ejemplo n.º 17
0
    public void Start()
    {
        List <Transform> transforms = FindRecursive(root);

        for (int i = 0; i < transforms.Count; i++)
        {
            Transform transform = transforms[i];
            if (transform.gameObject.name.Contains("Tongue") || transform.gameObject.name.Contains("Teeth"))
            {
                continue;
            }

            BehaviorParameters bp = transform.GetComponent <BehaviorParameters>();
            if (bp == null)
            {
                bp = transform.gameObject.AddComponent <BehaviorParameters>();
            }

            bp.BehaviorName = "SnapperController";
            bp.BrainParameters.VectorObservationSize = 55;
            // bp.BrainParameters.NumStackedVectorObservations = 4;
            bp.BrainParameters.VectorActionSpaceType = SpaceType.Continuous;
            bp.BrainParameters.VectorActionSize      = new int[] { 3, 3, 3 };
            bp.Model = nnModel;

            RigTransformAgent rta = transform.GetComponent <RigTransformAgent>();
            if (rta == null)
            {
                rta = transform.gameObject.AddComponent <RigTransformAgent>();
            }

            rta.Index      = i;
            rta.IndexRange = transforms.Count;
            rta.MaxStep    = MaxStep;

            DecisionRequester dr = transform.GetComponent <DecisionRequester>();
            if (dr == null)
            {
                dr = transform.gameObject.AddComponent <DecisionRequester>();
            }

            dr.DecisionPeriod = 2;
            dr.TakeActionsBetweenDecisions = true;

            RenderTextureSensorComponent rts = transform.GetComponent <RenderTextureSensorComponent>();
            if (rts == null)
            {
                rts = transform.gameObject.AddComponent <RenderTextureSensorComponent>();
            }

            rts.RenderTexture = camTexture;
            rts.Grayscale     = true;
        }
    }
Ejemplo n.º 18
0
        public override void InitializeAgent()
        {
            base.InitializeAgent();
            perception         = GetComponent <RayPerception>();
            behaviorParameters = GetComponent <BehaviorParameters>();
            parentTransform    = transform.parent;
            parentBody         = GetComponentInParent <Rigidbody>();
            totalFoodEaten     = 0;

            movement = GetComponent <MovementBehaviour>();
            eating   = GetComponent <EatingBehaviour>();
        }
Ejemplo n.º 19
0
 /// <summary>
 /// Construct an <see cref="InputActionActuator"/> with the <see cref="BehaviorParameters"/> of the
 /// <see cref="Agent"/> component, the relevant <see cref="InputAction"/>, and the relevant
 /// <see cref="IRLActionInputAdaptor"/> to convert between ml-agents &lt;--&gt; <see cref="InputSystem"/>.
 /// </summary>
 /// <param name="inputDevice">The input device this action is bound to.</param>
 /// <param name="behaviorParameters">Used to determine if the <see cref="Agent"/> is running in
 ///     heuristic mode.</param>
 /// <param name="action">The <see cref="InputAction"/> this <see cref="IActuator"/> we read/write data to/from
 ///     via the <see cref="IRLActionInputAdaptor"/>.</param>
 /// <param name="adaptor">The <see cref="IRLActionInputAdaptor"/> that will convert data between ML-Agents
 ///     and the <see cref="InputSystem"/>.</param>
 public InputActionActuator(InputDevice inputDevice, BehaviorParameters behaviorParameters,
                            InputAction action,
                            IRLActionInputAdaptor adaptor)
 {
     m_BehaviorParameters = behaviorParameters;
     Name           = $"InputActionActuator-{action.name}";
     m_Action       = action;
     m_InputAdaptor = adaptor;
     ActionSpec     = adaptor.GetActionSpecForInputAction(m_Action);
     m_Device       = inputDevice;
     m_Control      = m_Device?.GetChildControl(m_Action.name);
 }
Ejemplo n.º 20
0
    public override void Initialize()
    {
        float xPos = UnityEngine.Random.Range(-3, 3);
        float zPos = UnityEngine.Random.Range(-3, 3);

        m_Existential        = 1f / MaxStep;
        m_BehaviorParameters = gameObject.GetComponent <BehaviorParameters>();
        if (m_BehaviorParameters.TeamId == (int)Team.Blue)
        {
            team        = Team.Blue;
            m_Transform = new Vector3(transform.position.x - xPos, .5f, transform.position.z - zPos);

            //m_Transform = new Vector3(transform.position.x - 4f, .5f, transform.position.z);
        }
        else
        {
            team        = Team.Purple;
            m_Transform = new Vector3(transform.position.x - xPos, .5f, transform.position.z - zPos);

            //_Transform = new Vector3(transform.position.x + 4f, .5f, transform.position.z);
        }
        if (position == Position.Goalie)
        {
            m_LateralSpeed = 1.0f;
            m_ForwardSpeed = 1.0f;
        }
        else if (position == Position.Striker)
        {
            m_LateralSpeed = 0.3f;
            m_ForwardSpeed = 1.3f;
        }
        else
        {
            m_LateralSpeed = 0.3f;
            m_ForwardSpeed = 1.0f;
        }
        m_SoccerSettings           = FindObjectOfType <SoccerSettings>();
        agentRb                    = GetComponent <Rigidbody>();
        agentRb.maxAngularVelocity = 500;

        var playerState = new PlayerState
        {
            agentRb     = agentRb,
            startingPos = transform.position,
            agentScript = this,
        };

        area.playerStates.Add(playerState);
        m_PlayerIndex           = area.playerStates.IndexOf(playerState);
        playerState.playerIndex = m_PlayerIndex;

        m_ResetParams = Academy.Instance.EnvironmentParameters;
    }
Ejemplo n.º 21
0
        // private AgentAgentHelper AgentHelper = new AgentAgentHelper();

        public override void Initialize()
        {
            Time.timeScale = 1;
            // Debug.Log(Thread.CurrentThread.ManagedThreadId);
            //Random.seed = Thread.CurrentThread.ManagedThreadId;
            team                 = this.gameObject.tag;
            initial_position     = this.transform.position;
            initial_rotation     = this.transform.rotation;
            parent               = this.transform.parent;
            ball                 = parent.Find("Soccer Ball").gameObject;
            m_BehaviorParameters = gameObject.GetComponent <BehaviorParameters>();
            car_controller       = GetComponent <CarController>();
            self_rBody           = GetComponent <Rigidbody>();
            ball_rBody           = ball.GetComponent <Rigidbody>();
            goalCheck            = ball.GetComponent <GoalCheck_1v1>();
            GameObject car_sphere = this.transform.Find("Sphere").gameObject;

            if (team == "Blue")
            {
                car_sphere.GetComponent <Renderer>().material.SetColor("_Color", Color.blue);
                own_goal   = parent.Find("Blue_goal").gameObject;
                other_goal = parent.Find("Red_goal").gameObject;
                friends    = new List <GameObject>();

                foreach (GameObject go in AgentHelper.FindGameObjectInChildWithTag(parent, team))
                {
                    if (go.Equals(this.gameObject)) // I do this to exclude itself (not sure if its a good idea yet)
                    {
                        continue;
                    }
                    friends.Add(go);
                }
                enemies = new List <GameObject>(AgentHelper.FindGameObjectInChildWithTag(parent, "Red"));
            }
            else if (team == "Red")
            {
                car_sphere.GetComponent <Renderer>().material.SetColor("_Color", Color.red);
                own_goal   = parent.Find("Red_goal").gameObject;
                other_goal = parent.Find("Blue_goal").gameObject;
                friends    = new List <GameObject>();
                foreach (GameObject go in AgentHelper.FindGameObjectInChildWithTag(parent, team))
                {
                    if (go.Equals(this.gameObject)) // I do this to exclude itself (not sure if its a good idea yet)
                    {
                        continue;
                    }
                    friends.Add(go);
                }
                enemies = new List <GameObject>(AgentHelper.FindGameObjectInChildWithTag(parent, "Blue"));
            }
        }
Ejemplo n.º 22
0
    // Start is called before the first frame update
    void Start()
    {
        // check behaviour sizes
        BehaviorParameters behaviorParameters = this.gameObject.GetComponent <BehaviorParameters>();

        Debug.Log("size of continuous observation vector = " + behaviorParameters.BrainParameters.VectorObservationSize);
        Debug.Log("size of continuous action vector = " + behaviorParameters.BrainParameters.ActionSpec.NumContinuousActions);

        // check policy type
        _heuristic = behaviorParameters.BehaviorType == BehaviorType.HeuristicOnly;

        /* Env setup  */
        _rAgent = this.GetComponent <Rigidbody>(); // get rigid body attached to Agent gameobject
    }
Ejemplo n.º 23
0
    public override void Initialize()//reset vars
    {
        behaviorParameters = GetComponent <BehaviorParameters>();
        GameObject environment = gameObject.transform.parent.gameObject;

        ballRgd = ball.GetComponent <Rigidbody>();
        //basket = environment.transform.GetChild(right == 1 ? 3 : 4).GetChild(4);
        ballRgd.angularVelocity = Vector3.zero;
        ballRgd.velocity        = Vector3.zero;
        manager = transform.GetComponentInParent <ShootingPlayerScript>();
        counter = 0;
        //un-comment if using inference only shooting
        //transform.localPosition = new Vector3(Random.Range(3f, 18f), 1f, Random.Range(-9f, 9f));
        //ball.transform.localPosition = new Vector3(transform.localPosition.x + right * 1.1f, transform.localPosition.y + 0.75f, transform.localPosition.z);
    }
Ejemplo n.º 24
0
 public override void Setup()
 {
     base.Setup();
     m_Actions                         = new TestPushBlockActions();
     m_Asset                           = m_Actions.asset;
     m_GameObject                      = new GameObject();
     m_PlayerInput                     = m_GameObject.AddComponent <PlayerInput>();
     m_Provider                        = m_GameObject.AddComponent <TestProvider>();
     m_Provider.asset                  = m_Asset;
     m_Provider.collection             = m_Actions;
     m_ActuatorComponent               = m_GameObject.AddComponent <InputActuatorComponent>();
     m_BehaviorParameters              = m_GameObject.AddComponent <BehaviorParameters>();
     m_BehaviorParameters.BehaviorName = "InputTest";
     m_BehaviorParameters.BehaviorType = BehaviorType.Default;
 }
Ejemplo n.º 25
0
    private void Awake()
    {
        healthController = GetComponent <HealthController>();
        rb                 = GetComponent <Rigidbody>();
        environment        = this.transform.parent;
        gameController     = environment.GetComponentInChildren <GameController>();
        behaviorParameters = GetComponent <BehaviorParameters>();


        for (int i = 0; i < rateFire; i++)
        {
            GameObject newShell = Instantiate <GameObject>(shellPrefab, this.transform.parent);
            newShell.SetActive(false);
            shells.Add(newShell);
        }
    }
Ejemplo n.º 26
0
    public override void Initialize()//reset vals
    {
        behaviorParameters = GetComponent <BehaviorParameters>();
        right = 1;
        parent.GetComponent <Rigidbody>().useGravity = true;
        GameObject environment = gameObject.transform.parent.gameObject.transform.parent.gameObject;

        //ballRgd = environment.transform.GetChild(1).GetComponent<Rigidbody>();
        ballRgd = ball.GetComponent <Rigidbody>();//environment.transform.GetChild(1).transform;
        ballRgd.angularVelocity = Vector3.zero;
        ballRgd.velocity        = Vector3.zero;
        counter = 0;
        //ResetLocations();
        manager         = transform.GetComponentInParent <ShootingPlayerScript>();
        manager.hasBall = false;
    }
Ejemplo n.º 27
0
    public override void Initialize()
    {
        SoccerEnvController envController = GetComponentInParent <SoccerEnvController>();

        if (envController != null)
        {
            m_Existential = 1f / envController.MaxEnvironmentSteps;
        }
        else
        {
            m_Existential = 1f / MaxStep;
        }

        m_BehaviorParameters = gameObject.GetComponent <BehaviorParameters>();
        if (m_BehaviorParameters.TeamId == (int)Team.Blue)
        {
            team       = Team.Blue;
            initialPos = new Vector3(transform.position.x - 5f, .5f, transform.position.z);
            rotSign    = 1f;
        }
        else
        {
            team       = Team.Purple;
            initialPos = new Vector3(transform.position.x + 5f, .5f, transform.position.z);
            rotSign    = -1f;
        }
        if (position == Position.Goalie)
        {
            m_LateralSpeed = 1.0f;
            m_ForwardSpeed = 1.0f;
        }
        else if (position == Position.Striker)
        {
            m_LateralSpeed = 0.3f;
            m_ForwardSpeed = 1.3f;
        }
        else
        {
            m_LateralSpeed = 0.3f;
            m_ForwardSpeed = 1.0f;
        }
        m_SoccerSettings           = FindObjectOfType <SoccerSettings>();
        agentRb                    = GetComponent <Rigidbody>();
        agentRb.maxAngularVelocity = 500;

        m_ResetParams = Academy.Instance.EnvironmentParameters;
    }
Ejemplo n.º 28
0
    void Start()
    {
        _rBody              = GetComponent <Rigidbody>();
        _fJoint             = GetComponent <FixedJoint>();
        _viewField          = GetComponent <ViewField>();
        _bufferSensor       = GetComponent <BufferSensorComponent>();
        _behaviorParameters = GetComponent <BehaviorParameters>();

        var parent = transform.parent;

        _manager     = parent.GetComponent <ObjectsManager>();
        _config      = parent.GetComponent <Config>();
        _spawnHelper = parent.GetComponent <SpawnHelper>();
        _seenHolder  = parent.GetComponent <SeenHolder>();

        team = _behaviorParameters.TeamId == (int)Team.Hider ? Team.Hider : Team.Seeker;

        MaxStep = _config.episodeLength;
    }
Ejemplo n.º 29
0
    public override void Initialize()
    {
        behaviorParameters = gameObject.GetComponent <BehaviorParameters>();

        if (behaviorParameters.TeamId == (int)Team.Red)
        {
            team   = Team.Red;
            iniPos = new Vector3(transform.position.x - 3f, 1.1f, transform.position.z);
        }
        else
        {
            team   = Team.Blue;
            iniPos = new Vector3(transform.position.x + 3f, 1.1f, transform.position.z);
        }

        HorizontalSpeed = 0.4f;
        VerticalSpeed   = 1.1f;
        rb = GetComponent <Rigidbody>();
        rb.maxAngularVelocity = 500;
    }
Ejemplo n.º 30
0
    public override void Initialize()
    {
        // f**k you mlagents team
        m_ExistentialReward  = 1f / 1000000f;
        m_OutOfBoundsReward  = 1f / 10000f;
        totalHitReward       = 0f;
        m_HitReward          = 0.05f;
        m_BehaviorParameters = gameObject.GetComponent <BehaviorParameters>();
        if (m_BehaviorParameters.TeamId == (int)RectTeam.Blue)
        {
            team        = RectTeam.Blue;
            m_Transform = new Vector3(transform.position.x, 1f, transform.position.z);
        }
        else
        {
            team        = RectTeam.Yellow;
            m_Transform = new Vector3(transform.position.x, 1f, transform.position.z);
        }

        m_LateralSpeed             = 2.0f;
        m_ForwardSpeed             = 2.0f;
        m_Settings                 = FindObjectOfType <RectSettings>();
        agentRb                    = GetComponent <Rigidbody>();
        agentRb.maxAngularVelocity = 500;

        var playerState = new RectState
        {
            agentRb     = agentRb,
            startingPos = transform.position,
            agentScript = this,
        };

        area.playerStates.Add(playerState);
        m_PlayerIndex           = area.playerStates.IndexOf(playerState);
        playerState.playerIndex = m_PlayerIndex;

        m_ResetParams = Academy.Instance.EnvironmentParameters;
    }