【サバイバルホラーゲームを作りたい。その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; } }
今回は以上です。