You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.3 KiB
50 lines
1.3 KiB
1 year ago
|
// This code is part of the Fungus library (https://github.com/snozbot/fungus)
|
||
|
// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE)
|
||
|
|
||
|
using UnityEngine;
|
||
|
|
||
|
namespace Fungus.Examples
|
||
|
{
|
||
|
public class LookingAtDoor : MonoBehaviour
|
||
|
{
|
||
|
public Collider doorCol;
|
||
|
public float gazeTime = 0.2f;
|
||
|
private float gazeCounter = 0;
|
||
|
public BlockReference runBlockWhenGazed;
|
||
|
public Transform eye;
|
||
|
|
||
|
public VariableReference fungusBoolHasGazed;
|
||
|
|
||
|
public void ActivateNow()
|
||
|
{
|
||
|
enabled = true;
|
||
|
}
|
||
|
|
||
|
private void Update()
|
||
|
{
|
||
|
var curCounter = gazeCounter;
|
||
|
RaycastHit hit;
|
||
|
if (Physics.Raycast(eye.position, eye.forward, out hit))
|
||
|
{
|
||
|
if (hit.collider == doorCol)
|
||
|
{
|
||
|
gazeCounter += Time.deltaTime;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
gazeCounter = 0;
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
gazeCounter = 0;
|
||
|
}
|
||
|
|
||
|
if (gazeCounter >= gazeTime && curCounter <= gazeTime)
|
||
|
{
|
||
|
runBlockWhenGazed.Execute();
|
||
|
fungusBoolHasGazed.Set(true);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|