// アイテムドロップ private void DropItem() { BoatController.eBOAT_TYPE boatType = this.GetComponent <BoatController>().boatType; // 漁船の種類が大でなければアイテムドロップ抽選 if (boatType != BoatController.eBOAT_TYPE.BIGGER) { // 0.0~1.0からの値をランダムで取得して // 指定割合以下ならアイテムドロップする if (Random.value > itemDropRatio) { return; } } int itemDropNums = 1; // アイテムドロップの数 float adjustPosX = 0.5f; // 漁船(大)ならアイテムを複数ドロップ if (boatType == BoatController.eBOAT_TYPE.BIGGER) { itemDropNums = 3; } for (int i = 0; i < itemDropNums; i++) { // ボートが居た場所にドロップする GameObject itemObj = (GameObject)Instantiate( itemHeart, new Vector3(this.transform.position.x + (adjustPosX * i), this.transform.position.y, 0.0f), Quaternion.identity); itemObj.SetActive(true); } }
// ボートの槍攻撃 public bool Fire(bool AllOutAttack, bool isAttack, bool isLeft, Transform trans, float posX, float posY, GameObject boatSpear, BoatController.eBOAT_TYPE boatType) { // 発射可能な最大数の銛を撃っていたら攻撃しない // 一斉攻撃フラグが立っている時は無視 if (spears.Count >= maxSpears[(int)boatType] && AllOutAttack) { return(isAttack); } // 攻撃中なら中断 if (isAttack) { return(isAttack); } // 左向きの場合、コピー元の銛から少し左にずらす float adjustPosX = 0.0f; if (isLeft) { adjustPosX = -1.0f; } // 漁船(大)の銛位置調整 if (boatType == BoatController.eBOAT_TYPE.BIGGER) { float biggerAdjustPoxX = 0.7f; if (!isLeft) { adjustPosX += biggerAdjustPoxX; } else { adjustPosX -= biggerAdjustPoxX; } } // 銛の生成 GameObject createObj = (GameObject)Instantiate( boatSpear, new Vector3( posX + adjustPosX, posY, 0.0f), Quaternion.identity); boatSpearScript = createObj.GetComponent <BoatSpear>(); boatSpearScript.ShotSpear(isLeft); isAttack = true; // 銛のオブジェクトをListに入れておく spears.Add(createObj); return(isAttack); }