示例#1
0
文件: CTFSim.cs 项目: RSK11/ctf
    public void LoadMap(Map map)
    {
        goals = map.goals;
        scores.Add(0);
        scores.Add(0);
        int i = 0;

        if (hum)
        {
            Vector3 offset    = new Vector3(Mathf.Cos(0f), 0f, Mathf.Sin(0f)) * spawnRadius;
            Human   newPlayer = Instantiate <Human>(humanPrefab, goals[0].transform.position + offset, Quaternion.identity);
            if (nnbrain != null)
            {
                newPlayer.InitBrain(0, blueMaterial, this, nnbrain);
            }
            else
            {
                newPlayer.Init(0, blueMaterial, this);
            }
            ThrdCam tcam = Camera.main.gameObject.AddComponent <ThrdCam>();
            tcam.target = newPlayer.body;
            tcam.transform.SetParent(newPlayer.transform);
            newPlayer.SetCam(tcam);
            players.Add(newPlayer);
            map.hs.SetPlayer(players[0]);
            i++;
        }
        else
        {
            Camera.main.gameObject.AddComponent <FrstCam>();
            Camera.main.transform.position = goals[0].transform.position + Vector3.up * 20f;
        }

        for (; i < PlayersPerTeam; i++)
        {
            float   ang       = Mathf.PI * 2 * (float)i / (float)PlayersPerTeam;
            Vector3 offset    = new Vector3(Mathf.Cos(ang), 0f, Mathf.Sin(ang)) * spawnRadius;
            AI      newPlayer = Instantiate <AI>(playerPrefab, goals[0].transform.position + offset, Quaternion.identity);
            if (nnbrain != null)
            {
                newPlayer.InitBrain(0, blueMaterial, this, nnbrain);
            }
            else
            {
                newPlayer.Init(0, blueMaterial, this);
            }
            players.Add(newPlayer);
        }

        for (int j = 0; j < PlayersPerTeam; j++)
        {
            float   ang       = Mathf.PI * 2 * (float)j / (float)PlayersPerTeam + Mathf.PI;
            Vector3 offset    = new Vector3(Mathf.Cos(ang), 0f, Mathf.Sin(ang)) * spawnRadius;
            AI      newPlayer = Instantiate <AI>(playerPrefab, goals[1].transform.position + offset, Quaternion.identity);
            if (nnbrain != null)
            {
                newPlayer.InitBrain(1, redMaterial, this, nnbrain);
            }
            else
            {
                newPlayer.Init(1, redMaterial, this);
            }
            players.Add(newPlayer);
        }

        loaded    = true;
        over      = false;
        paused    = false;
        time      = 0f;
        resetTime = 0f;
        rs        = map.rs;
    }
示例#2
0
文件: Human.cs 项目: RSK11/ctf
 public void SetCam(ThrdCam camera)
 {
     cam = camera;
 }