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
// 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); |
|
} |
|
} |
|
} |
|
} |