Dummy inputs
This commit is contained in:
parent
48d866fcf2
commit
3047ea74f1
|
|
@ -499,6 +499,7 @@ GameObject:
|
|||
- component: {fileID: 6285390310926959546}
|
||||
- component: {fileID: 6198430257364661693}
|
||||
- component: {fileID: -5564384145903586768}
|
||||
- component: {fileID: -4645702950898394595}
|
||||
m_Layer: 0
|
||||
m_Name: Elephant
|
||||
m_TagString: Untagged
|
||||
|
|
@ -558,13 +559,41 @@ MonoBehaviour:
|
|||
m_Script: {fileID: 11500000, guid: 2f9ee457016acdc4eb5dbfdc03be0d6f, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_onInit:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: -4645702950898394595}
|
||||
m_TargetAssemblyTypeName: HeavenStudio.Games.Scripts_AnimalAcrobat.ObstacleInput,
|
||||
Assembly-CSharp
|
||||
m_MethodName: Init
|
||||
m_Mode: 0
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
_fullRotRange: 120
|
||||
_spawnDistance: 10.408
|
||||
_spawnOffset: 0
|
||||
_holdLength: 2
|
||||
_ease: 4
|
||||
_rotateRoot: {fileID: 2616646720197201304}
|
||||
_gripPoint: {fileID: 2131794628642567477}
|
||||
--- !u!114 &-4645702950898394595
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7540716611123628191}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 9a934a7ab91ef694e94df3dce43f43ca, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_holdLength: 2
|
||||
--- !u!1 &7805847212563886084
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
|
|||
|
|
@ -263,6 +263,7 @@ GameObject:
|
|||
m_Component:
|
||||
- component: {fileID: 1701002327333926128}
|
||||
- component: {fileID: 5248028064811562821}
|
||||
- component: {fileID: 3253363150451868373}
|
||||
m_Layer: 0
|
||||
m_Name: Giraffe
|
||||
m_TagString: Untagged
|
||||
|
|
@ -301,12 +302,23 @@ MonoBehaviour:
|
|||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_fullRotRange: 160
|
||||
_spawnDistance: 20.816
|
||||
_spawnOffset: 10.408
|
||||
_holdLength: 4
|
||||
_ease: 4
|
||||
_rotateRoot: {fileID: 4208995891253938729}
|
||||
_gripPoint: {fileID: 8714220451416272075}
|
||||
--- !u!114 &3253363150451868373
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2939598505969617365}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f87e00a2ffbd0af4baae18b3c11268db, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1 &3911272779464478738
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
|
|||
|
|
@ -125,6 +125,7 @@ GameObject:
|
|||
m_Component:
|
||||
- component: {fileID: 532140475066366254}
|
||||
- component: {fileID: 7370747047491091311}
|
||||
- component: {fileID: 3772265357728581139}
|
||||
m_Layer: 0
|
||||
m_Name: WhiteMonkey
|
||||
m_TagString: Untagged
|
||||
|
|
@ -162,13 +163,39 @@ MonoBehaviour:
|
|||
m_EditorClassIdentifier:
|
||||
_onInit:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 3772265357728581139}
|
||||
m_TargetAssemblyTypeName: HeavenStudio.Games.Scripts_AnimalAcrobat.ObstacleInput,
|
||||
Assembly-CSharp
|
||||
m_MethodName: Init
|
||||
m_Mode: 0
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
_fullRotRange: 160
|
||||
_spawnOffset: 5.204
|
||||
_holdLength: 1
|
||||
_ease: 4
|
||||
_rotateRoot: {fileID: 2068126119450832752}
|
||||
_gripPoint: {fileID: 8286548847234487440}
|
||||
--- !u!114 &3772265357728581139
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1656536018348746482}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 9a934a7ab91ef694e94df3dce43f43ca, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_holdLength: 1
|
||||
--- !u!1 &3823740494665398411
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
|
|||
|
|
@ -1892,6 +1892,7 @@ GameObject:
|
|||
m_Component:
|
||||
- component: {fileID: 3439047595127619699}
|
||||
- component: {fileID: -3114631264593203074}
|
||||
- component: {fileID: 3068772248330600904}
|
||||
m_Layer: 0
|
||||
m_Name: WhiteMonkeys
|
||||
m_TagString: Untagged
|
||||
|
|
@ -1931,13 +1932,39 @@ MonoBehaviour:
|
|||
m_EditorClassIdentifier:
|
||||
_onInit:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 3068772248330600904}
|
||||
m_TargetAssemblyTypeName: HeavenStudio.Games.Scripts_AnimalAcrobat.ObstacleInput,
|
||||
Assembly-CSharp
|
||||
m_MethodName: Init
|
||||
m_Mode: 0
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
_fullRotRange: 160
|
||||
_spawnOffset: 9.244
|
||||
_holdLength: 3
|
||||
_ease: 4
|
||||
_rotateRoot: {fileID: 3903953954711634507}
|
||||
_gripPoint: {fileID: 3800820123473635694}
|
||||
--- !u!114 &3068772248330600904
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7969179947406382610}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 9a934a7ab91ef694e94df3dce43f43ca, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_holdLength: 3
|
||||
--- !u!1 &8302616130811808557
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
|
|||
|
|
@ -3,12 +3,13 @@ using System.Collections.Generic;
|
|||
using UnityEngine;
|
||||
using HeavenStudio.Util;
|
||||
using UnityEngine.Events;
|
||||
using System;
|
||||
|
||||
namespace HeavenStudio.Games.Scripts_AnimalAcrobat
|
||||
{
|
||||
public class AcrobatObstacle : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private UnityEvent<double> _onInit;
|
||||
public Action<double, bool> OnInit;
|
||||
|
||||
[Header("Values")]
|
||||
[SerializeField] private float _fullRotRange;
|
||||
|
|
@ -33,11 +34,11 @@ namespace HeavenStudio.Games.Scripts_AnimalAcrobat
|
|||
_func = EasingFunction.GetEasingFunction(_ease);
|
||||
}
|
||||
|
||||
public void Init(double beat, double expirationBeat)
|
||||
public void Init(double beat, double expirationBeat, bool behindGiraffe)
|
||||
{
|
||||
_startBeat = beat;
|
||||
_expirationBeat = expirationBeat;
|
||||
_onInit.Invoke(_startBeat);
|
||||
OnInit(beat, behindGiraffe);
|
||||
Update();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -74,6 +74,14 @@ namespace HeavenStudio.Games
|
|||
private List<QueuedAnimal> _queuedAnimals = new();
|
||||
private int _animalPoolIndex = 0;
|
||||
private float _animalSummatedDistance = 0;
|
||||
private bool _lastAnimalWasGiraffe = false;
|
||||
|
||||
public static AnimalAcrobat instance;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
instance = this;
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
|
|
@ -124,10 +132,11 @@ namespace HeavenStudio.Games
|
|||
expBeat += seekedAnimal.length;
|
||||
}
|
||||
|
||||
animal.Init(currentAnimal.startBeat, expBeat);
|
||||
animal.Init(currentAnimal.startBeat, expBeat, _lastAnimalWasGiraffe);
|
||||
|
||||
animal.transform.localPosition = new Vector3(_animalSummatedDistance, 0, 0);
|
||||
_animalSummatedDistance += animal.GetRotationDistance() + _jumpDistance;
|
||||
_lastAnimalWasGiraffe = currentAnimal.type == AnimalType.Giraffe;
|
||||
|
||||
_animalPoolIndex++;
|
||||
}
|
||||
|
|
|
|||
102
Assets/Scripts/Games/AnimalAcrobat/GiraffeInput.cs
Normal file
102
Assets/Scripts/Games/AnimalAcrobat/GiraffeInput.cs
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
using HeavenStudio.Util;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace HeavenStudio.Games.Scripts_AnimalAcrobat
|
||||
{
|
||||
public class GiraffeInput : MonoBehaviour
|
||||
{
|
||||
private AcrobatObstacle _mainScript;
|
||||
|
||||
private AnimalAcrobat _game;
|
||||
|
||||
private Sound _drumRollSound;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
_game = AnimalAcrobat.instance;
|
||||
_mainScript = GetComponent<AcrobatObstacle>();
|
||||
_mainScript.OnInit += Init;
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
if (_drumRollSound != null) _drumRollSound.Stop();
|
||||
}
|
||||
|
||||
public void Init(double beat, bool beforeGiraffe)
|
||||
{
|
||||
_game.ScheduleInput(beat - 1, 1, InputType.STANDARD_DOWN, beforeGiraffe ? JustHoldGiraffe : JustHold, Empty, Empty);
|
||||
_game.ScheduleInput(beat, 4, InputType.STANDARD_UP, JustRelease, Empty, Empty);
|
||||
|
||||
MultiSound.Play(new MultiSound.Sound[]
|
||||
{
|
||||
new MultiSound.Sound("animalAcrobat/eek", beat + 2),
|
||||
new MultiSound.Sound("animalAcrobat/eek", beat + 3)
|
||||
});
|
||||
}
|
||||
|
||||
private void JustHold(PlayerActionEvent caller, float state)
|
||||
{
|
||||
SoundByte.PlayOneShotGame("animalAcrobat/catch");
|
||||
}
|
||||
|
||||
private void JustHoldGiraffe(PlayerActionEvent caller, float state)
|
||||
{
|
||||
SoundByte.PlayOneShotGame("animalAcrobat/giraffeCatch");
|
||||
}
|
||||
|
||||
private void JustRelease(PlayerActionEvent caller, float state)
|
||||
{
|
||||
SoundByte.PlayOneShotGame("animalAcrobat/giraffeJump");
|
||||
|
||||
double beat = caller.startBeat + caller.timer;
|
||||
|
||||
_drumRollSound = SoundByte.PlayOneShotGame("animalAcrobat/giraffeDrumroll", beat, 1, 1, true);
|
||||
StartCoroutine(GiraffeDrumRollLoop(beat));
|
||||
|
||||
MultiSound.Play(new MultiSound.Sound[]
|
||||
{
|
||||
new MultiSound.Sound("animalAcrobat/giraffeCymbal", beat + 2),
|
||||
new MultiSound.Sound("animalAcrobat/applause", beat + 2.25),
|
||||
new MultiSound.Sound("animalAcrobat/turn", beat + 3)
|
||||
});
|
||||
}
|
||||
|
||||
private IEnumerator GiraffeDrumRollLoop(double beat)
|
||||
{
|
||||
float fadeOutNormalized = 0;
|
||||
var cond = Conductor.instance;
|
||||
while (fadeOutNormalized <= 1)
|
||||
{
|
||||
fadeOutNormalized = cond.GetPositionFromBeat(beat, 1);
|
||||
_drumRollSound.SetVolume(Mathf.Lerp(1, 0.125f, fadeOutNormalized));
|
||||
yield return null;
|
||||
}
|
||||
|
||||
float fadeInNormalized = 0;
|
||||
|
||||
while (fadeInNormalized <= 1)
|
||||
{
|
||||
fadeInNormalized = cond.GetPositionFromBeat(beat + 1, 3);
|
||||
_drumRollSound.SetVolume(Mathf.Lerp(0.125f, 1, fadeOutNormalized));
|
||||
yield return null;
|
||||
}
|
||||
|
||||
float fadeOutFinal = 0;
|
||||
double fadeOutLength = cond.SecsToBeats(0.587, cond.GetBpmAtBeat(beat + 4));
|
||||
|
||||
while (fadeOutFinal <= 1)
|
||||
{
|
||||
fadeOutFinal = cond.GetPositionFromBeat(beat + 4, fadeOutLength);
|
||||
_drumRollSound.SetVolume(Mathf.Lerp(1, 0, fadeOutNormalized));
|
||||
yield return null;
|
||||
}
|
||||
_drumRollSound.Stop();
|
||||
_drumRollSound = null;
|
||||
}
|
||||
|
||||
private void Empty(PlayerActionEvent caller) { }
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/Games/AnimalAcrobat/GiraffeInput.cs.meta
Normal file
11
Assets/Scripts/Games/AnimalAcrobat/GiraffeInput.cs.meta
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: f87e00a2ffbd0af4baae18b3c11268db
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
55
Assets/Scripts/Games/AnimalAcrobat/ObstacleInput.cs
Normal file
55
Assets/Scripts/Games/AnimalAcrobat/ObstacleInput.cs
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
using HeavenStudio.Util;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace HeavenStudio.Games.Scripts_AnimalAcrobat
|
||||
{
|
||||
public class ObstacleInput : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private double _holdLength;
|
||||
|
||||
private AcrobatObstacle _mainScript;
|
||||
|
||||
private AnimalAcrobat _game;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
_game = AnimalAcrobat.instance;
|
||||
_mainScript = GetComponent<AcrobatObstacle>();
|
||||
_mainScript.OnInit += Init;
|
||||
}
|
||||
|
||||
public void Init(double beat, bool beforeGiraffe)
|
||||
{
|
||||
_game.ScheduleInput(beat - 1, 1, InputType.STANDARD_DOWN, beforeGiraffe ? JustHoldGiraffe : JustHold, Empty, Empty);
|
||||
_game.ScheduleInput(beat, _holdLength, InputType.STANDARD_UP, JustRelease, Empty, Empty);
|
||||
|
||||
MultiSound.Play(new MultiSound.Sound[]
|
||||
{
|
||||
new MultiSound.Sound("animalAcrobat/eek", beat + _holdLength - 2),
|
||||
new MultiSound.Sound("animalAcrobat/eek", beat + _holdLength - 1)
|
||||
});
|
||||
}
|
||||
|
||||
private void JustHold(PlayerActionEvent caller, float state)
|
||||
{
|
||||
SoundByte.PlayOneShotGame("animalAcrobat/catch");
|
||||
}
|
||||
|
||||
private void JustHoldGiraffe(PlayerActionEvent caller, float state)
|
||||
{
|
||||
SoundByte.PlayOneShotGame("animalAcrobat/giraffeCatch");
|
||||
}
|
||||
|
||||
private void JustRelease(PlayerActionEvent caller, float state)
|
||||
{
|
||||
SoundByte.PlayOneShotGame("animalAcrobat/release");
|
||||
|
||||
SoundByte.PlayOneShotGame("animalAcrobat/turn", caller.startBeat + caller.timer + 1);
|
||||
}
|
||||
|
||||
private void Empty(PlayerActionEvent caller) { }
|
||||
}
|
||||
}
|
||||
|
||||
11
Assets/Scripts/Games/AnimalAcrobat/ObstacleInput.cs.meta
Normal file
11
Assets/Scripts/Games/AnimalAcrobat/ObstacleInput.cs.meta
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 9a934a7ab91ef694e94df3dce43f43ca
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -43,6 +43,11 @@ namespace HeavenStudio.Util
|
|||
{
|
||||
}
|
||||
|
||||
public void SetVolume(float volume)
|
||||
{
|
||||
audioSource.volume = volume;
|
||||
}
|
||||
|
||||
public void Play()
|
||||
{
|
||||
if (!available)
|
||||
|
|
|
|||
Loading…
Reference in a new issue