コード例 #1
0
ファイル: Player.cs プロジェクト: meichimasayuki/RG01
    private bool IsMoveArea()
    {
        Vector3 move_pos = transform.position + (new Vector3(moveVector.x, 0.1f, moveVector.z) * MOVE_SPEED);
        Ray     ray      = new Ray(move_pos, -Vector3.up);

        RaycastHit[] hits = Physics.RaycastAll(ray, 20.0f);
        if (hits.Length != 0)
        {
            bool isfloor = false;
            for (int i = 0; i < hits.Length; i++)
            {
                if (hits[i].collider.name.Contains("MapTrout"))
                {
                    Trout2 trout = hits[i].collider.gameObject.GetComponent <Trout2>();
                    Manager.PlayerPass(trout);
                    continue;
                }
                if (hits[i].collider.name.Contains("Floor"))
                {
                    isfloor = true;
                }
            }
            if (!isfloor)
            {
                PlayAnimation("Stay");
                isMove = false;
                touchPointer.ApproachePointer();
            }
            return(isfloor);
        }
        return(false);
    }
コード例 #2
0
    // 復帰
    public void ReCreate()
    {
        List <TroutData> datalist = GlobalDataManager.GetGlobalData().LoadTroutData();

        for (int i = 0; i < datalist.Count; i++)
        {
            Trout2 trout = Instantiate(troutObj, Vector3.zero, Quaternion.Euler(0, 0, 0)) as Trout2;
            trout.ReCreate(datalist[i]);
            trout.name = "MapTrout";
            troutList.Add(trout);
        }
        List <EnemyData> enemylist = GlobalDataManager.GetGlobalData().LoadEnemyDataList();

        Debug.Log("敵を" + enemylist.Count + "体再出現させます。");
        for (int i = 0; i < enemylist.Count; i++)
        {
            EnemyField enemy = Instantiate(enemyObj, enemylist[i].Position, Quaternion.Euler(0, 0, 0)) as EnemyField;
            enemy.Manager = this;
            enemy.Target  = playerOwner.gameObject;
            enemy.FirstAreaCheck();
            enemyList.Add(enemy);
        }
        playerOwner.Manager = this;
        playerOwner.Respawn();
    }
コード例 #3
0
    // プレイヤーが通った道をマップに表示
    public void PlayerPass(Trout2 trout)
    {
        if (trout.GetIsPass())
        {
            return;
        }
        string category = trout.GetCategory();

        if (category.Contains("ROAD"))
        {
            trout.PlayerPass();
        }
        if (category.Contains("ROOM"))
        {
            category = category.Replace("DOOR", "");
            category = category.Replace("CENTER", "");
            for (int i = 0; i < troutList.Count; i++)
            {
                if (troutList[i].GetCategory().Contains(category))
                {
                    troutList[i].PlayerPass();
                }
            }
            for (int i = 0; i < enemyList.Count; i++)
            {
                enemyList[i].MapEnemyActive(trout);
            }
        }
    }
コード例 #4
0
    // ステージの作成
    public void Create(int size)
    {
        Debug.Log("ダンジョンの生成を開始します。");
        GlobalDataManager.GetGlobalData().OnReload();
        // ここ以外で値の変更はしない
        DUNGEON_SIZE = size;

        // 区画の生成
        CreateArea();
        // ルートの生成
        CreateRoute();
        // 道の生成
        CreateRoad();
        // 袋小路の生成
        CreateBlindAlley();

        // ダンジョンデータ生成後マスの生成
        for (int i = 0; i < areaList.Count; i++)
        {
            List <TroutData> trout_list = areaList[i].GetTroutDataList();
            for (int n = 0; n < trout_list.Count; n++)
            {
                troutDataList.Add(trout_list[n]);
            }
        }
        for (int i = 0; i < roadList.Count; i++)
        {
            List <TroutData> trout_list = roadList[i].GetTroutDataList();
            for (int n = 0; n < trout_list.Count; n++)
            {
                troutDataList.Add(trout_list[n]);
            }
        }
        for (int i = 0; i < troutDataList.Count; i++)
        {
            troutDataList[i].ID = i;
            Trout2 trout = Instantiate(troutObj, troutDataList[i].Position, troutDataList[i].Rotation) as Trout2;
            trout.ReCreate(troutDataList[i]);
            trout.name = "MapTrout";
            GlobalDataManager.GetGlobalData().SaveTroutData(troutDataList[i]);
            troutList.Add(trout);
        }

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

        playerOwner.IsVisiblePlayer(true);
        playerOwner.ResetSetUpPlayerCamera();
        playerOwner.Manager = this;
        playerOwner.FirstAreaCheck();
        Debug.Log("ダンジョンの生成を終了しました。");
    }
コード例 #5
0
 public void MapEnemyActive(Trout2 trout)
 {
     for (int i = 0; i < movePosotionList.Count; i++)
     {
         if (trout.GetPosition() == movePosotionList[i])
         {
             mapEnemy.SetActive(true);
             break;
         }
     }
 }
コード例 #6
0
    // 敵が移動できる範囲内にあるマスリスト
    public List <Vector3> GetEnemyAreaInTroutList(Trout2 trout)
    {
        List <Vector3> poslist  = new List <Vector3>();
        string         category = trout.GetCategory();

        category = category.Replace("DOOR", "");
        category = category.Replace("CENTER", "");
        for (int i = 0; i < troutList.Count; i++)
        {
            if (troutList[i].GetCategory().Contains(category))
            {
                poslist.Add(troutList[i].GetPosition());
            }
        }
        return(poslist);
    }
コード例 #7
0
ファイル: Player.cs プロジェクト: meichimasayuki/RG01
    public void FirstAreaCheck()
    {
        Vector3 pos = new Vector3(transform.position.x, transform.position.y + 0.1f, transform.position.z);
        Ray     ray = new Ray(pos, -Vector3.up);

        RaycastHit[] hits = Physics.RaycastAll(ray, 20.0f);
        if (hits.Length != 0)
        {
            for (int i = 0; i < hits.Length; i++)
            {
                if (hits[i].collider.name.Contains("MapTrout"))
                {
                    Trout2 trout = hits[i].collider.gameObject.GetComponent <Trout2>();
                    Manager.PlayerPass(trout);
                }
            }
        }
    }
コード例 #8
0
    public void FirstAreaCheck()
    {
        Vector3 pos = new Vector3(transform.position.x, transform.position.y + 0.1f, transform.position.z);
        Ray     ray = new Ray(pos, -Vector3.up);

        RaycastHit[] hits = Physics.RaycastAll(ray, 20.0f);
        if (hits.Length != 0)
        {
            for (int i = 0; i < hits.Length; i++)
            {
                if (hits[i].collider.name.Contains("MapTrout"))
                {
                    Trout2 trout = hits[i].collider.gameObject.GetComponent <Trout2>();
                    movePosotionList = Manager.GetEnemyAreaInTroutList(trout);
                }
            }
        }
        Debug.Log("動ける範囲のマスは" + movePosotionList.Count + "マスです。");
    }