如何使每个脚本与每个启动分开?
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.
的所有版本和实例只共享一个东西
所以我目前正在尝试创建一个僵尸游戏,我在其中编写了一个脚本,如果它“靠近”玩家,则可以启用击中动画。 此脚本的代码如下:
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.