C# 为什么板条箱要打开/关闭?靠近板条箱时,不停止?
我希望当玩家靠近板条箱时,它会打开一次,然后当玩家离开板条箱超过1.5f距离时,关闭板条箱一次,如果再次靠近,则打开一次 但是当玩家现在接近它时,它会很快地打开/关闭,不停。 如果玩家离它越来越远,它将关闭一次,但问题是当接近它时 脚本,可能是我为“打开”和“关闭”所做的逻辑有问题C# 为什么板条箱要打开/关闭?靠近板条箱时,不停止?,c#,unity3d,C#,Unity3d,我希望当玩家靠近板条箱时,它会打开一次,然后当玩家离开板条箱超过1.5f距离时,关闭板条箱一次,如果再次靠近,则打开一次 但是当玩家现在接近它时,它会很快地打开/关闭,不停。 如果玩家离它越来越远,它将关闭一次,但问题是当接近它时 脚本,可能是我为“打开”和“关闭”所做的逻辑有问题 using System.Collections; using System.Collections.Generic; using UnityEngine; public class UnlockCrate : M
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UnlockCrate : MonoBehaviour
{
public GameObject carte;
public Animation anim;
private bool playAnimOnce = false;
private void Update()
{
var distance = Vector3.Distance(carte.transform.position, transform.position);
if(distance < 1.5f && playAnimOnce == false)
{
anim.Play("Crate_Open");
playAnimOnce = true;
}
else
{
if(playAnimOnce == true)
{
anim.Play("Crate_Close");
playAnimOnce = false;
}
}
}
}
使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
公共类解锁箱:单行为
{
公共游戏对象点菜;
公共动画;
private bool playAnimOnce=假;
私有void更新()
{
变量距离=向量3.距离(carte.transform.position,transform.position);
if(距离<1.5f&&playAnimOnce==false)
{
动画游戏(“板条箱打开”);
playAnimOnce=真;
}
其他的
{
if(playAnimOnce==true)
{
动画游戏(“板条箱关闭”);
playAnimOnce=假;
}
}
}
}
代码看起来是这样的(旁边的变量奇怪地命名为“板条箱打开”):
- 如果播放器小于(1.5个单位),且机箱未打开
- 打开板条箱
- 否则
- 如果板条箱是打开的
- 关上板条箱
- 如果板条箱是打开的
if (distance < 1.5f)
{
if (!playAnimOnce)
{
anim.Play("Crate_Open");
playAnimOnce = true;
}
}
else if (playAnimOnce)
{
anim.Play("Crate_Close");
playAnimOnce = false;
}
if(距离<1.5f)
{
如果(!playanimone)
{
动画游戏(“板条箱打开”);
playAnimOnce=真;
}
}
else if(播放动画一次)
{
动画游戏(“板条箱关闭”);
playAnimOnce=假;
}
现在,它将只打开板条箱,如果你在范围内,它是关闭的,并将只关闭它,如果你在范围外