前回でアニメーターの設定が全て完了したので今回はプログラミングしてゾンビがその時の状況にあったアニメーションを行うようにします。
動画のように何もない時はプレイヤーに近寄り、銃の弾丸を当てるとダウンするようにします。
目次
ゾンビの当たり判定
アニメーションを切り替えられるようにする
まずはプロジェクトから新しいC#スクリプトを作り、スクリプトの名前を「zombe」にします。
![](https://civetta-blog.com/wp-content/uploads/2024/02/スクリーンショット-2024-01-18-21.31.18-1024x540.png)
コードは以下をコピー&ペーストしてください。
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番目の赤丸)。
![](https://civetta-blog.com/wp-content/uploads/2024/02/スクリーンショット-2024-01-18-21.36.29-1024x540.png)
するとタグを作ることができるので、名前を「bullet」にします。
ここの名前は必ず合わせてください。
![](https://civetta-blog.com/wp-content/uploads/2024/02/スクリーンショット-2024-01-18-21.36.58-1024x543.png)
そして再びタグをクリックします(画像1番目の赤丸)。
すると一番下にさっき作った「bullet」が追加されているのでそれをクリックします(画像2番目の赤丸)。
![](https://civetta-blog.com/wp-content/uploads/2024/02/スクリーンショット-2024-01-18-21.37.15-1024x541.png)
ここまでできたらさっき作ったスクリプトの「Zombe」を左クリック長押しでヒエラルキーの「Zombie」に持っていきます(画像1番目の赤丸)。
するとヒエラルキーの「Zombe」をクリックした時に右側を下クスロールすると「Zombei(スクリプト)」が追加されます(画像2番目の赤丸)。
![](https://civetta-blog.com/wp-content/uploads/2024/02/スクリーンショット-2024-01-18-21.40.07-1024x537.png)
Zombie(スクリプト)の中には「Player」という項目があり、ここにヒエラルキーのオブジェクトを入れることが
できますが、ここに入れたオブジェクトをゾンビが追いかけるようになります。
このゲームではプレイヤーを追いかけてほしいのでここにはヒエラルキーの「Player」を入れます。
![](https://civetta-blog.com/wp-content/uploads/2024/02/スクリーンショット-2024-01-18-21.40.28-1024x539.png)
ごめんなさい、一つだけ作業をし忘れていました。
プロジェクトに入れた「Sphere」は「インスペクター」から「Sphere Collider」の「トリガーにする」にチェックを入れておいてください。
これをしないとゾンビに弾丸を当ててもアニメーションが切り替わらないようになります。
![](https://civetta-blog.com/wp-content/uploads/2024/02/スクリーンショット-2024-02-12-1.33.34-1024x518.png)
これでOKです。
ゲームを実行してみてゾンビがこちらにダッシュモーションで近づいてきて、弾丸を当てるとダウンするようになれば成功です!
アニメーションに関してはこれで完成です。お疲れ様でした!
あともう少しなので頑張りましょう!
前の記事 次の記事
コメントを残す