Inheritance: MonoBehaviour
Exemplo n.º 1
0
 private void OnCollisionEnter(Collision collision)
 {
     if (collision.gameObject.tag == "Block" && count == 0 || collision.gameObject.tag == "DestroyArea" || collision.gameObject.tag == "Player")
     {
         if (collision.gameObject.tag == "Block")
         {
             blockCtl.BlockBool(collision.gameObject.transform.position);
         }
         else if (collision.gameObject.tag == "Player")
         {
             PlayerCtl playerCtl = collision.gameObject.GetComponent <PlayerCtl>();
             if (playerCtl.GetState() != PlayerCtl.PlayerState.Damage)
             {
                 playerCtl.SetState(PlayerCtl.PlayerState.Damage);
             }
         }
         count++;
         if (!gameManager.gameClear)
         {
             Instantiate(explosion, this.transform.position, Quaternion.identity);
             gameManager.positionShell();
         }
         Destroy(gameObject);
     }
 }
Exemplo n.º 2
0
    //ユニット作成(リスト追加は外部で実施すること)
    public static UnitObj Create(String _name, Unit _type, Vector2Int _pos, PlayerCtl _player)
    {
        UnitObj newObj = Instantiate(_player.utltList.FirstOrDefault(u => u.units == _type));
        //対象のシェーダー情報を取得
        Shader sh = _player.utltList.FirstOrDefault(u => u.units == _type).transform.GetComponent <SpriteRenderer>().material.shader;    //Find("Texture").
        //取得したシェーダーを元に新しいマテリアルを作成
        Material mat = new Material(sh);

        newObj.transform.GetComponent <SpriteRenderer>().material = mat; //Find("Texture").

        newObj.name    = _name;
        newObj.pos     = _pos;
        newObj.old_pos = _pos;
        newObj.hp      = newObj.hpMax;
        newObj.fuel    = newObj.fuelMax;
        newObj.gameObject.SetActive(true); //表示
        newObj.lock_max = UnityEngine.Random.Range(10, 100);
        newObj.player   = _player;
        newObj.gameObject.SetActive(true);
        newObj.GetComponent <SpriteRenderer>().color = _player.pColor;
        newObj.chgWorkType(WorkType.Newing);
        newObj.gameObject.name = "Obj_" + _player.pnum + "_" + _type.ToString();
        _player.vMap.moveAdd(_pos, 3);
        if (newObj.type != uType.Building)
        {
            StageCtl.UnitList[newObj.player.pnum].Insert(0, newObj);      //先頭
        }
        else
        {
            StageCtl.UnitList[newObj.player.pnum].Add(newObj);      //末尾
        }
        newObj.transform.position = map.GetComponent <Grid>().GetCellCenterWorld(new Vector3Int(MapCtl.offset_stg2tile_x(_pos.x), MapCtl.offset_stg2tile_y(_pos.y), 0)) - new Vector3(0f, 0f, 1f);
        return(newObj);
    }
 // Use this for initialization
 void Start()
 {
     playerCtl            = GetComponent <PlayerCtl>();
     characterStateActVer = new State(gameObject);
     Debug.Log(playerCtl.charcter_state[0]);
     foreach (State state in playerCtl.charcter_state)
     {
         InputTran += new InputEventHandler(state.handleInput);//向所有状态发送事件
     }
 }
Exemplo n.º 4
0
    //ユニット情報初期化(ゲーム開始時に必ずコールすること)
    public static List <UnitObj> initUnitTlt(PlayerCtl p)
    {
        List <UnitObj> uObjTlt = new List <UnitObj>();

        //ユニットテンプレートを追加
        //_image, _type, _units, _cost, _hpMax, int _fuelMax, _fuelEfc, float _speedMax, float _yawMax
        uObjTlt.Add(addObjTlt("001/B2_Refinery", uType.None, Unit.None, 100, 100, 100, 2, 10, 10));                                     /* なし   */
        uObjTlt.Add(addObjTlt("001/I1_Infantry", uType.Infantry, Unit.Infantry, 100, 100, 100, 2, 10, 10));                             /* 歩兵隊 */
        uObjTlt.Add(addObjTlt("001/B2_Refinery", uType.Vehicle, Unit.Tank, 100, 100, 100, 2, 10, 10));                                  /* 戦車隊 */
        uObjTlt.Add(addObjTlt("001/B2_Refinery", uType.Vehicle, Unit.Artillery, 100, 100, 100, 2, 10, 10));                             /* 砲兵隊 */
        uObjTlt.Add(addObjTlt("001/B2_Refinery", uType.Vehicle, Unit.AntiAircraft, 100, 100, 100, 2, 10, 10));                          /* 高射砲隊 */
        uObjTlt.Add(addObjTlt("001/V4_Track", uType.Vehicle, Unit.Transport, 100, 100, 100, 2, 10, 10));                                /* 輸送車 */
        uObjTlt.Add(addObjTlt("001/V4_Track", uType.Vehicle, Unit.LargeTransport, 100, 100, 100, 2, 1, 1));                             /* 大型輸送車 */
        uObjTlt.Add(addObjTlt("001/B2_Refinery", uType.Warship, Unit.Battleship, 100, 100, 100, 2, 10, 10));                            /* 戦艦 */
        uObjTlt.Add(addObjTlt("001/B2_Refinery", uType.Warship, Unit.Cruiser, 100, 100, 100, 2, 10, 10));                               /* 巡洋艦 */
        uObjTlt.Add(addObjTlt("001/B2_Refinery", uType.Warship, Unit.Destroyer, 100, 100, 100, 2, 10, 10));                             /* 駆逐艦 */
        uObjTlt.Add(addObjTlt("001/B2_Refinery", uType.Warship, Unit.Carrier, 100, 100, 100, 2, 10, 10));                               /* 空母 */
        uObjTlt.Add(addObjTlt("001/B2_Refinery", uType.Warship, Unit.LightCarrier, 100, 100, 100, 2, 10, 10));                          /* 軽空母 */
        uObjTlt.Add(addObjTlt("001/B2_Refinery", uType.Submarine, Unit.Submarine, 100, 100, 100, 2, 10, 10));                           /* 潜水艦 */
        uObjTlt.Add(addObjTlt("001/M7_TransportShip", uType.Warship, Unit.TransportShip, 100, 100, 100, 2, 1, 1));                      /* 輸送艦 */
        uObjTlt.Add(addObjTlt("001/M7_TransportShip", uType.Warship, Unit.LargeTransportShip, 100, 100, 100, 2, 1, 1));                 /* 大型輸送艦 */
        uObjTlt.Add(addObjTlt("001/B2_Refinery", uType.Warship, Unit.Tanker, 100, 100, 100, 2, 10, 10));                                /* 油槽船 */
        uObjTlt.Add(addObjTlt("001/B2_Refinery", uType.Warship, Unit.LargeTanker, 100, 100, 100, 2, 10, 10));                           /* 大型油槽船 */
        uObjTlt.Add(addObjTlt("001/B2_Refinery", uType.Warship, Unit.RepairShip, 100, 100, 100, 2, 10, 10));                            /* 工作艦 */
        uObjTlt.Add(addObjTlt("001/B2_Refinery", uType.Aircraft, Unit.Surveillance, 100, 100, 100, 3, 3.5f, 2.5f));                     /* 偵察機 */
        uObjTlt.Add(addObjTlt("001/A2_Fighter", uType.Aircraft, Unit.Fighter, 100, 100, 100, 2, 3.0f, 2.0f));                           /* 戦闘機 */
        uObjTlt.Add(addObjTlt("001/B2_Refinery", uType.Aircraft, Unit.Attacker, 100, 100, 100, 2, 10, 10));                             /* 攻撃機 */
        uObjTlt.Add(addObjTlt("001/B2_Refinery", uType.Aircraft, Unit.Bomber, 100, 100, 100, 2, 10, 10));                               /* 爆撃機 */
        uObjTlt.Add(addObjTlt("001/A2_Fighter", uType.Aircraft, Unit.LandFighter, 100, 100, 100, 2, 2.0f, 1.5f));                       /* 陸上戦闘機 */
        uObjTlt.Add(addObjTlt("001/B2_Refinery", uType.Aircraft, Unit.HeavyBomber, 100, 100, 100, 1, 10, 10));                          /* 大型爆撃機 */
        uObjTlt.Add(addObjTlt("001/B2_Refinery", uType.Aircraft, Unit.CargoAircraft, 100, 100, 100, 3, 10, 10));                        /* 輸送機 */
        uObjTlt.Add(addObjTlt("001/B2_Refinery", uType.Building, Unit.Urban, 100, 100, 100, 2, 10, 10));                                /* 都市 */
        uObjTlt.Add(addObjTlt("001/B2_Refinery", uType.Building, Unit.Capital, 100, 100, 100, 2, 0, 0));                                /* 首都 */
        uObjTlt.Add(addObjTlt("001/B2_Refinery", uType.Building, Unit.Factory, 100, 100, 100, 2, 0, 0));                                /* 工場 */
        uObjTlt.Add(addObjTlt("001/B4_OilWell", uType.Building, Unit.OilWell, 100, 100, 100, 2, 0, 0));                                 /* 油井 */
        uObjTlt.Add(addObjTlt("001/B2_Refinery", uType.Building, Unit.Refinery, 100, 100, 100, 2, 0, 0));                               /* 製油所 */
        uObjTlt.Add(addObjTlt("001/B2_Refinery", uType.Building, Unit.Airfield, 100, 100, 100, 2, 0, 0));                               /* 飛行場 */
        uObjTlt.Add(addObjTlt("001/B2_Refinery", uType.Building, Unit.NavalPort, 100, 100, 100, 2, 0, 0));                              /* 軍港 */
        uObjTlt.Add(addObjTlt("001/B2_Refinery", uType.Building, Unit.Camp, 100, 100, 100, 2, 0, 0));                                   /* 野営地 */
        uObjTlt.Add(addObjTlt("001/B2_Refinery", uType.Building, Unit.Base, 100, 100, 100, 2, 0, 0));                                   /* 基地 */
        uObjTlt.Add(addObjTlt("001/B2_Refinery", uType.Building, Unit.Fortress, 100, 100, 100, 2, 0, 0));                               /* 要塞 */
        return(uObjTlt);
    }
Exemplo n.º 5
0
    //ユニット情報を登録(type 1:歩兵/2:車両/3:飛行機/4:船舶)
    public UnitObj AddUnit(String name, Vector2Int point, PlayerCtl player, Unit type)
    {
        //UnitObj unit = Instantiate(baseUnit);
        //unit.Initialize(name, type, point, player, moveAmount, hp, fuel, atkmin, atkmax, atk, image);
        UnitObj unit = UnitObj.Create(name, type, point, player);

        //unit.gameObject.SetActive(true);
        //if (player.pnum == 0){
        //    unit.GetComponent<SpriteRenderer>().color = new Color(0.75f, 0.0f, 0.0f, 1.0f); //red transform.Find("Texture").
        //} else {
        //    unit.transform.GetComponent<SpriteRenderer>().color = new Color(0.0f, 0.0f, 0.75f, 1.0f); //blue
        //}
        //unit.transform.position = map.GetComponent<Grid>().GetCellCenterWorld( new Vector3Int( MapCtl.offset_stg2tile_x(point.x), MapCtl.offset_stg2tile_y(point.y), 0 ) ) - new Vector3(0f, 0f, 1f);
        //if (unit.type != uType.Building){
        //	UnitList[player.pnum].Insert(0, unit);  //先頭
        //} else {
        //	UnitList[player.pnum].Add(unit);  //末尾
        //}
        return(unit);
    }
Exemplo n.º 6
0
 public State(GameObject _Player)
 {
     this.Player    = _Player;
     this.playerCtl = _Player.GetComponent <PlayerCtl>();
 }