如何使每个脚本与每个启动分开?

How to make each script separate to each initiation?

所以我目前正在尝试创建一个僵尸游戏,我在其中编写了一个脚本,如果它“靠近”玩家,则可以启用击中动画。 此脚本的代码如下:

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

public class ZombieNavMesh : MonoBehaviour
{
    private Transform movePositionTransform;

    private NavMeshAgent navMeshAgent;

    private Animator animator;

    static bool close;

    private void Start()
    {
        movePositionTransform = GameObject.Find("Player").transform;
        animator = GetComponent<Animator>();
    }

    private void Awake()
    {
        navMeshAgent = GetComponent<NavMeshAgent>();
    }

    private void Update()
    {
        if (!close)
        {
            navMeshAgent.destination = movePositionTransform.position;
            animator.SetBool("Close", false);
        } 
        if (close)
        {
            animator.SetBool("Close", true);
        }
    }

    public void OnTriggerEnter(Collider other)
    {
        if(other.tag == "Player")
        {
            Debug.Log("Should hit");
            close = true;
        }
    }

    public void OnTriggerExit(Collider other)
    {
        if(other.tag == "Player")
        {
            Debug.Log("Should not hit");
            close = false;
        }
    }
}

这里的问题是,如果一个僵尸Enters Trigger,另一个僵尸Exit Trigger,bool值close会被设置为false,所以两者都会执行行走动画;应该是近处的丧尸击中动画,远方的丧尸行走动画

static bool close;

中删除单词 static

static 意味着 class.

的所有版本和实例只共享一个东西