2023-01-19 17:18:55 +00:00
|
|
|
using System;
|
|
|
|
using System.Collections;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
using UnityEngine;
|
|
|
|
using NaughtyBezierCurves;
|
|
|
|
using HeavenStudio.Util;
|
|
|
|
|
|
|
|
namespace HeavenStudio.Games.Scripts_WorkingDough
|
|
|
|
{
|
2023-06-12 12:04:32 +00:00
|
|
|
public class NPCDoughBall : SuperCurveObject
|
2023-01-19 17:18:55 +00:00
|
|
|
{
|
2023-06-12 12:04:32 +00:00
|
|
|
private double startBeat = double.MinValue;
|
|
|
|
private Path path;
|
2023-06-13 13:51:35 +00:00
|
|
|
[SerializeField] private GameObject gandw;
|
2023-01-19 17:18:55 +00:00
|
|
|
|
2023-06-13 13:51:35 +00:00
|
|
|
public void Init(double beat, bool hasGandw)
|
2023-06-12 12:04:32 +00:00
|
|
|
{
|
|
|
|
startBeat = beat;
|
|
|
|
path = WorkingDough.instance.GetPath("NPCBall");
|
2023-06-13 13:51:35 +00:00
|
|
|
if (gandw != null) gandw.SetActive(hasGandw);
|
2023-06-12 12:04:32 +00:00
|
|
|
Update();
|
|
|
|
}
|
2023-01-19 17:18:55 +00:00
|
|
|
|
|
|
|
private void Update()
|
|
|
|
{
|
|
|
|
var cond = Conductor.instance;
|
|
|
|
|
2023-06-12 12:04:32 +00:00
|
|
|
if (cond.isPlaying && !cond.isPaused)
|
|
|
|
{
|
|
|
|
double beat = cond.songPositionInBeats;
|
|
|
|
if (startBeat > double.MinValue)
|
|
|
|
{
|
|
|
|
Vector3 pos = GetPathPositionFromBeat(path, Math.Max(beat, startBeat), startBeat);
|
2023-06-28 04:51:53 +00:00
|
|
|
if (startBeat <= beat) transform.position = pos;
|
|
|
|
else transform.position = new Vector3(-80, -80);
|
2023-06-12 12:04:32 +00:00
|
|
|
if (beat >= startBeat + 2) Destroy(gameObject);
|
|
|
|
}
|
2023-01-19 17:18:55 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|