void OnTriggerEnter2D(Collider2D col) { // 相手キャラクター に当たったら、この弾を消すぜ☆ if (col.gameObject.tag == ThisSceneDto.PlayerToTag[opponent]) { if (mainCameraScript != null)// なぜかヌルになっていることがあるぜ☆(^~^) { var opponentKey = PlayerIndexes.FromArrayIndex(opponent); // 爆発の粒子を作るぜ☆ TakoyakiParticleScript.Add(this.transform.position.x, this.transform.position.y); // HPメーター { float damage; switch (opponentKey) { case PlayerIndex.Player1: damage = -50.0f; break; // 1プレイヤーにダメージの場合マイナス☆ case PlayerIndex.Player2: damage = 50.0f; break; default: Debug.LogError("Bullet / HP meter / opponent"); damage = 0.0f; break; } // コンピューターが連射をしていると、mainCameraScript がヌルになっていることがあるようだ。 mainCameraScript.OffsetBar(damage); } // 手番 { // 攻撃を受けた方の手番に変わるぜ☆(^▽^) mainCameraScript.SetTeban(opponentKey); } // この弾を消すぜ☆ Destroy(gameObject); } } }
//void OnCollisionEnter2D(Collider2D col) //{ // Debug.Log("物体だ☆! col.tag = " + col.tag); //} /// <summary> /// BoxCollider2D(等のPhysics2D), Rigidbody2D の2つをアタッチしているものと接触したとき。 /// </summary> /// <param name="col"></param> void OnTriggerEnter2D(Collider2D col) { #region 当たり判定 if (col.tag == playerScript.OpponentHitboxTag)// 相手の 攻撃当たり判定くん が重なった時 { // ブロックしているかどうか判定☆ //CommonInput.PlayerInput input = CommonInput.player_to_input[playerIndex]; CommonInput.PlayerInput input = CommonInput.Update((PlayerIndex)playerIndex); if (FacingOpponentMoveFwBkSt.Back == playerScript.GetFacingOpponentMoveFwBkSt(input.leverX)) { //if ((int)PlayerIndex.Player1==playerIndex) //{ // Debug.Log("ブロック☆! col.tag = " + col.tag + " input.leverX = " + input.leverX + " Time.deltaTime = " + Time.deltaTime); //} audioSources[1].PlayOneShot(audioSources[1].clip);// 効果音を鳴らすぜ☆ playerScript.Animator.SetTrigger(SceneCommon.TRIGGER_BLOCK); } else { //if ((int)PlayerIndex.Player1 == playerIndex) //{ // Debug.Log("痛っ☆! col.tag = " + col.tag + " input.leverX = " + input.leverX + " Time.deltaTime = " + Time.deltaTime); //} playerScript.DamageHitCount++; // 攻撃を受けた回数。 audioSources[0].PlayOneShot(audioSources[0].clip); // 効果音を鳴らすぜ☆ // 爆発の粒子を作るぜ☆ TakoyakiParticleScript.Add(transform.position.x, transform.position.y); // HPメーター { float damage = playerScript.MainCameraScript.Player_to_attackPower[(int)playerScript.Opponent]; float value = damage * (playerIndex == (int)PlayerIndex.Player1 ? -1 : 1); playerScript.MainCameraScript.OffsetBar(value); if (10 <= playerScript.DamageHitCount) { // ダウン・アニメーションの開始 playerScript.Pull_Down(); } else if (100.0f <= damage) { // ダメージ・アニメーションの開始 playerScript.Pull_DamageH(); } else if (50.0f <= damage) { // ダメージ・アニメーションの開始 playerScript.Pull_DamageM(); } else { // ダメージ・アニメーションの開始 playerScript.Pull_DamageL(); } } // 手番 { // 攻撃を受けた方の手番に変わるぜ☆(^▽^) playerScript.MainCameraScript.SetTeban(playerScript.Opponent); } } } else { //Debug.Log("相手の攻撃じゃないものに当たった☆! col.tag = " + col.tag); } #endregion }