예제 #1
0
    private void Start()
    {
        // Set variables
        squareMaxSpeed        = maxSpeed * maxSpeed;
        squareNeighbourRadius = neighbourRadius * neighbourRadius;
        squareAvoidanceRadius = squareNeighbourRadius * avoidanceRadiusMultiplier * avoidanceRadiusMultiplier;

        // Instantiate Flock
        for (int i = 0; i < startingCount; i++)
        {
            FlockAgent newAgent = Instantiate(
                agentPrefab,
                transform.position + Random.insideUnitSphere * startingCount * AgentDensity,
                Random.rotation
                );
            newAgent.name = "Agent " + (i + 1);
            newAgent.SetColor(Random.ColorHSV(0f, 1f, 0.5f, 1f, 0.5f, 1f, 0.04f, 0.04f));
            newAgent.Flock = this;

            agents.Add(newAgent);
        }
    }
예제 #2
0
    private void Start()
    {
        squareMaxSpeed        = maxSpeed * maxSpeed;
        squareNeighborRadius  = neighbornRadius * neighbornRadius;
        squareAvoidanceRadius = avoidanceRadiusMultiplayer * avoidanceRadiusMultiplayer * squareNeighborRadius;

        Vector2 offset = transform.position;

        for (int i = 0; i < amount; i++)
        {
            FlockAgent agent = Instantiate(
                prefab,
                (Random.insideUnitCircle * amount * agentDensity) + offset,
                Quaternion.Euler(new Vector3(0, 0, Random.Range(0, 360))),
                transform
                );

            agent.name = "Agent" + i;
            agent.tag  = agentColor.ToString();
            agent.SetColor(agentColor);
            agents.Add(agent);
        }
    }