Inheritance: MonoBehaviour
    public override void Initialize()
    {
        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 - 4f, .5f, transform.position.z);
        }
        else
        {
            team        = Team.Purple;
            m_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;
    }
Example #2
0
    public override void InitializeAgent()
    {
        base.InitializeAgent();
        m_AgentRenderer            = GetComponentInChildren <Renderer>();
        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;
    }
Example #3
0
    public override void Initialize()
    {
        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;
    }
Example #4
0
 void Start()
 {
     m_SoccerSettings = FindObjectOfType <SoccerSettings>();
     // Initialize TeamManager
     m_BlueAgentGroup   = new SimpleMultiAgentGroup();
     m_PurpleAgentGroup = new SimpleMultiAgentGroup();
     ballRb             = ball.GetComponent <Rigidbody>();
     m_BallStartingPos  = new Vector3(ball.transform.position.x, ball.transform.position.y, ball.transform.position.z);
     foreach (var item in AgentsList)
     {
         item.StartingPos = item.Agent.transform.position;
         item.StartingRot = item.Agent.transform.rotation;
         item.Rb          = item.Agent.GetComponent <Rigidbody>();
         if (item.Agent.team == Team.Blue)
         {
             m_BlueAgentGroup.RegisterAgent(item.Agent);
         }
         else
         {
             m_PurpleAgentGroup.RegisterAgent(item.Agent);
         }
     }
     ResetScene();
 }