forked from cgvr/DeltaVR
professor walks away after having been saved
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -1,3 +1,4 @@
|
|||||||
|
using DG.Tweening;
|
||||||
using System;
|
using System;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@@ -13,6 +14,8 @@ public class ShapeDetectionNPC : NPCController
|
|||||||
public ShapeScanner shapeScanner;
|
public ShapeScanner shapeScanner;
|
||||||
public Transform questMarkerPoint;
|
public Transform questMarkerPoint;
|
||||||
public float radioAmount = 1f;
|
public float radioAmount = 1f;
|
||||||
|
public Transform[] movementPath;
|
||||||
|
public float moveSpeedPerSecond = 2f;
|
||||||
|
|
||||||
|
|
||||||
// states:
|
// states:
|
||||||
@@ -22,6 +25,8 @@ public class ShapeDetectionNPC : NPCController
|
|||||||
// 3 - player spoke into the radio
|
// 3 - player spoke into the radio
|
||||||
// 4 - player pressed enter on keyboard
|
// 4 - player pressed enter on keyboard
|
||||||
// 5 - player inserted picture into printer
|
// 5 - player inserted picture into printer
|
||||||
|
// 6 - shape scanner completed
|
||||||
|
// 7 - moving away
|
||||||
private int state;
|
private int state;
|
||||||
private float lastPlayerApproachTime;
|
private float lastPlayerApproachTime;
|
||||||
|
|
||||||
@@ -128,6 +133,29 @@ public class ShapeDetectionNPC : NPCController
|
|||||||
|
|
||||||
private void OnShapeScannerCompleted()
|
private void OnShapeScannerCompleted()
|
||||||
{
|
{
|
||||||
|
state = 6;
|
||||||
questMarker.MoveTo(questMarkerPoint);
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public class NPCFinalTriggerArea : MonoBehaviour
|
||||||
|
{
|
||||||
|
public ShapeDetectionNPC npc;
|
||||||
|
|
||||||
|
// Start is called before the first frame update
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update is called once per frame
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnTriggerEnter(Collider other)
|
||||||
|
{
|
||||||
|
if (other.gameObject.tag == "Player Head")
|
||||||
|
{
|
||||||
|
npc.OnPlayerEnteredRoom();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3a356edc14b3aeb48b95081f0d876053
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -40,7 +40,6 @@ public class Printer3DInputHole : MonoBehaviour
|
|||||||
{
|
{
|
||||||
ReleaseFromPlayer(printable);
|
ReleaseFromPlayer(printable);
|
||||||
InsertPrintable(printable);
|
InsertPrintable(printable);
|
||||||
OnPlayerInsertedPrintable?.Invoke();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -82,6 +81,7 @@ public class Printer3DInputHole : MonoBehaviour
|
|||||||
{
|
{
|
||||||
printer.PrintObject(printable.GetTexture());
|
printer.PrintObject(printable.GetTexture());
|
||||||
Destroy(printable.gameObject);
|
Destroy(printable.gameObject);
|
||||||
|
OnPlayerInsertedPrintable?.Invoke();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user