unity中,有两段代码,代码1挂载于触发器,当判断下个场景为1时,判断值=true,代码2挂载于玩家,时代码1中判断值为true时,使玩家坐标为指定坐标,中,如何使代码2执行后重置代码1中的判断值,使其能重复执行
时间: 2024-01-01 16:06:04 浏览: 87
你可以在代码1中添加一个公共的bool变量,命名为"isTriggered",当判断下个场景为1时,将"isTriggered"赋值为true。在代码2中,当玩家到达指定坐标时,将"isTriggered"重置为false。这样,在下一次玩家进入触发器时,代码1会重新执行,并将"isTriggered"重新赋值为true。以下是示例代码:
代码1:
```csharp
public class Trigger : MonoBehaviour
{
public bool isTriggered = false;
private void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("Player"))
{
// 判断下个场景为1时,将isTriggered赋值为true
if (nextScene == 1)
{
isTriggered = true;
}
}
}
}
```
代码2:
```csharp
public class Player : MonoBehaviour
{
public Transform targetPosition;
public Trigger trigger;
private void Update()
{
if (Vector3.Distance(transform.position, targetPosition.position) < 0.1f)
{
// 玩家到达指定坐标时,将isTriggered重置为false
trigger.isTriggered = false;
}
}
}
```
阅读全文