示例#1
0
    public void SetGrassSpawner(int indexLenght, int indexWidth)
    {
        // Debug.Log(DataBaseManager.ins.DataXMLMap.dataLevel[grassSpawner.curentLevel].dataStage[grassSpawner.currentStage].detailMapsInt[0].Count);
        grassSpawner.Grass       = new List <List <GameObject> >();
        PathReader               = new List <PathFollowingReader>();
        grassSpawner.originalPos = grassSpawner.Parent.position;
        for (int i = 0; i < indexLenght; i++)
        {
            grassSpawner.Grass.Add(new List <GameObject>());
            for (int j = 0; j < indexWidth; j++)
            {
                for (int k = 0; k < (int)stringTag.NUM_STARTS; k++)
                {
                    setTag = (stringTag)k;
                    if (DataBaseManager.ins.DataXMLMap.dataLevel[grassSpawner.curentLevel].dataStage[grassSpawner.currentStage].detailMapsInt[i][j] == (int)setTag)
                    {
                        SpawnObj(grassSpawner.Prefabs[k - 1], i, setTag.ToString());
                        if (setTag == stringTag.HoleSpawner)
                        {
                            PathFollowingReader pathFollowing = new PathFollowingReader();
                            pathFollowing.HolePos.IndexPosX = j;
                            pathFollowing.HolePos.IndexPosZ = i;

                            PathReader.Add(pathFollowing);
                        }
                    }
                }


                grassSpawner.originalPos.x += 102;
            }

            grassSpawner.originalPos.x  = grassSpawner.Parent.position.x;
            grassSpawner.originalPos.z -= 102f;
        }

        for (int i = 0; i < PathReader.Count; i++)
        {
            PathReader[i].SetFindObj();
        }

        SpawnerManager.posSpawn      = new Vector3[PathReader.Count];
        SpawnerManager.RotationSpawn = new Quaternion[PathReader.Count];


        for (int i = 0; i < PathReader.Count; i++)
        {
            SpawnerManager.posSpawn[i]    = grassSpawner.Grass[PathReader[i].HolePos.IndexPosZ][PathReader[i].HolePos.IndexPosX].transform.position;
            SpawnerManager.posSpawn[i].y += 30f;

            Vector3 DesiredRot = Vector3.zero;

            if (PathReader[i].Steps.Count > 0)
            {
                DesiredRot = grassSpawner.Grass[PathReader[i].Steps[1].IndexPosZ][PathReader[i].Steps[1].IndexPosX].transform.position;
            }
            DesiredRot.y = SpawnerManager.posSpawn[i].y;
            SpawnerManager.RotationSpawn[i] = Quaternion.LookRotation(DesiredRot - SpawnerManager.posSpawn[i]);
        }
    }
示例#2
0
    public void SetDesirePos(PathFollowingReader path)
    {
        DesirePos = new Vector3[path.Steps.Count - 1];
        for (int i = 0; i < DesirePos.Length; i++)
        {
            DesirePos[i] = GameManager.ins.grassSpawner.Grass[path.Steps[i + 1].IndexPosZ][path.Steps[i + 1].IndexPosX].transform.position;
            if (Data.type == EnemiesData.Type.Walking)
            {
                DesirePos[i].y += 30f;
            }
            else
            {
                DesirePos[i].y += 130f;
            }
        }

        Vector3 pos = transform.position;

        pos.y = DesirePos[0].y;
        transform.position = pos;
    }