[Unity]初心者向けゾンビゲーム開発4/6 ゾンビ当たり判定

前回でアニメーターの設定が全て完了したので今回はプログラミングしてゾンビがその時の状況にあったアニメーションを行うようにします。

動画のように何もない時はプレイヤーに近寄り、銃の弾丸を当てるとダウンするようにします。


ステージ&操作キャラ

銃から弾丸を発射させる

ゾンビのアニメーション

ゾンビの当たり判定

スコア表示&ゾンビのリスポーン

ゲームオーバー画面


まずはプロジェクトから新しいC#スクリプトを作り、スクリプトの名前を「zombe」にします。

コードは以下をコピー&ペーストしてください。

using System.Collections;
using System.Collections.Generic;
using System.Net;
using Unity.VisualScripting;
using UnityEngine;
using static UnityEngine.GraphicsBuffer;

public class zombe : MonoBehaviour
{

    //アニメーション
    Animator animator;
    //プレイヤー
    public GameObject Playe;
    //スピード
    public float Speed;
    bool Stop = false;
    //攻撃判定
    private float attac;
    // Start is called before the first frame update
    void Start()
    {
        animator = GetComponent<Animator>();
    }

    // Update is called once per frame
    void Update()
    {
        Quaternion lookRotation = Quaternion.LookRotation(Playe.transform.position - transform.position, Vector3.up);

        lookRotation.z = 0;
        lookRotation.x = 0;

        transform.rotation = Quaternion.Lerp(transform.rotation, lookRotation, 0.1f);

        transform.position += transform.forward * Speed * Time.deltaTime;
        if (Stop == true)
        {
            Speed = 0;
        }
        else
        {
            Speed = 3;
        }
        attac = Vector3.Distance(transform.position, Playe.transform.position);

        if (attac < 5f)
        {
            animator.SetBool("Attac", true);
        }
        else
        {
            animator.SetBool("Attac", false);
        }
    }

    void OnTriggerEnter(Collider col)
    {
        if (col.tag == "bullet")
        {
            animator.SetBool("FallingBack", true);
            Stop = true;
            Invoke("Run", 3f);
        }
    }
}

コードができたら銃の説明をした時に弾丸として作った「Sphere」を開きます(画像1番目の赤丸)

コードではZombieに「bullet」というタグのオブジェクトが触れると倒れるようにしてあります。
まだ「bullet」というタグはないのでこれから作っていきましょう。

右側の上の方にある「タグ」の項目をクリックします(画像2番目の赤丸)
すると色々出てきますが、一番下の「タグを追加」をクリックします(画像3番目の赤丸)

するとタグを作ることができるので、名前を「bullet」にします。
ここの名前は必ず合わせてください。

そして再びタグをクリックします(画像1番目の赤丸)
すると一番下にさっき作った「bullet」が追加されているのでそれをクリックします(画像2番目の赤丸)

ここまでできたらさっき作ったスクリプトの「Zombe」を左クリック長押しでヒエラルキーの「Zombie」に持っていきます(画像1番目の赤丸)

するとヒエラルキーの「Zombe」をクリックした時に右側を下クスロールすると「Zombei(スクリプト)」が追加されます(画像2番目の赤丸)

Zombie(スクリプト)の中には「Player」という項目があり、ここにヒエラルキーのオブジェクトを入れることが
できますが、ここに入れたオブジェクトをゾンビが追いかけるようになります。

このゲームではプレイヤーを追いかけてほしいのでここにはヒエラルキーの「Player」を入れます。

ごめんなさい、一つだけ作業をし忘れていました。
プロジェクトに入れた「Sphere」「インスペクター」から「Sphere Collider」「トリガーにする」にチェックを入れておいてください。

これをしないとゾンビに弾丸を当ててもアニメーションが切り替わらないようになります。

これでOKです。

ゲームを実行してみてゾンビがこちらにダッシュモーションで近づいてきて、弾丸を当てるとダウンするようになれば成功です!

アニメーションに関してはこれで完成です。お疲れ様でした!
あともう少しなので頑張りましょう!


前の記事                                           次の記事

ゾンビのアニメーション                         スコア表示&ゾンビのリスポーン

TOPに戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です