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; }
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; }
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; }
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(); }