1
0
forked from cgvr/DeltaVR

professor walks away after having been saved

This commit is contained in:
2026-03-07 13:46:26 +02:00
parent b583b00303
commit 68fe5357d2
6 changed files with 72 additions and 5 deletions

View File

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

View File

@@ -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();
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 3a356edc14b3aeb48b95081f0d876053
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -40,7 +40,6 @@ public class Printer3DInputHole : MonoBehaviour
{
ReleaseFromPlayer(printable);
InsertPrintable(printable);
OnPlayerInsertedPrintable?.Invoke();
}
}
}
@@ -82,6 +81,7 @@ public class Printer3DInputHole : MonoBehaviour
{
printer.PrintObject(printable.GetTexture());
Destroy(printable.gameObject);
OnPlayerInsertedPrintable?.Invoke();
});
}
}