forked from cgvr/DeltaVR
professor walks away after having been saved
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
using DG.Tweening;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
@@ -13,6 +14,8 @@ public class ShapeDetectionNPC : NPCController
|
||||
public ShapeScanner shapeScanner;
|
||||
public Transform questMarkerPoint;
|
||||
public float radioAmount = 1f;
|
||||
public Transform[] movementPath;
|
||||
public float moveSpeedPerSecond = 2f;
|
||||
|
||||
|
||||
// states:
|
||||
@@ -22,6 +25,8 @@ public class ShapeDetectionNPC : NPCController
|
||||
// 3 - player spoke into the radio
|
||||
// 4 - player pressed enter on keyboard
|
||||
// 5 - player inserted picture into printer
|
||||
// 6 - shape scanner completed
|
||||
// 7 - moving away
|
||||
private int state;
|
||||
private float lastPlayerApproachTime;
|
||||
|
||||
@@ -128,6 +133,29 @@ public class ShapeDetectionNPC : NPCController
|
||||
|
||||
private void OnShapeScannerCompleted()
|
||||
{
|
||||
state = 6;
|
||||
questMarker.MoveTo(questMarkerPoint);
|
||||
}
|
||||
|
||||
private void MoveToNextPoint(int pointIndex)
|
||||
{
|
||||
Transform nextPoint = movementPath[pointIndex];
|
||||
float moveDuration = (nextPoint.position - transform.position).magnitude / moveSpeedPerSecond;
|
||||
transform.DOMove(nextPoint.position, moveDuration).SetEase(Ease.Linear).OnComplete(() =>
|
||||
{
|
||||
if (pointIndex < movementPath.Length - 1)
|
||||
{
|
||||
MoveToNextPoint(pointIndex + 1);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void OnPlayerEnteredRoom()
|
||||
{
|
||||
if (state == 6)
|
||||
{
|
||||
questMarker.gameObject.SetActive(false);
|
||||
MoveToNextPoint(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user