【サバイバルホラーゲームを作りたい。その30】

今回もこちらの動画をやっていきます。
youtu.be

今回は瓶を撃つと瓶が消えてカギが現れるようにします。

・下記スクリプトを瓶にアタッチします。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class JarBreak : MonoBehaviour //EP30追加
{
    public GameObject KeyObj;

    public void BreakJar()
    {
        StartCoroutine(BreakJarCOR());
    }

    IEnumerator BreakJarCOR()
    {
        KeyObj.SetActive(true);
        yield return null;
        this.gameObject.SetActive(false);
    }
}

また、下記スクリプトを追加します。

public class FirePistol : MonoBehaviour //EP11追加 Gunにアタッチ
{
(省略)
 IEnumerator FiringPistol()
    {
        inputScript.setFireInput(false);

        RaycastHit shot;
        // public static bool Raycast(Vector3 origin, Vector3 direction, out RaycastHit hitInfo)
        // origin:ワールド座標でのレイの開始地点, direction:レイの方向, hitInfo:衝突した相手オブジェクトの情報
        //EP12追加
        if (Physics.Raycast(/*transform.position*/ gunShotPoint.transform.position, gunShotPoint.transform.TransformDirection(Vector3.forward), out shot))
            {
            //レイの開始点からレイ衝突した点までの距離
            TargetDistance = shot.distance;

            //ゲームオブジェクトにアタッチされているすべての MonoBehaviour にある methodName と名付けたメソッドを呼び出します
            // shot.transform.SendMessage("DamageZombie", DamageAmount, SendMessageOptions.DontRequireReceiver);
            if (zombieCollider == null)
            {
                zombieCollider = shot.transform.GetComponent<ZombieCollider>();
            }
            else if (zombieCollider!=null)
            {
                zombieCollider.DamageZombie(DamageAmount);
            }

            if (shot.transform.tag == "Jar") //EP30追加
            {
                JarBreak jarBreak;
                jarBreak = shot.transform.GetComponent<JarBreak>();
                jarBreak.BreakJar();
            }

        }

        animator.Play("PistolShot");
        animator.Play("MuzzleFlashAnim");
        pistolSound.Play();

        yield return null;
    }
}

今回は以上です。