elephant spawn and rotation values

This commit is contained in:
Rapandrasmus 2023-10-03 18:04:08 +02:00
parent a04215ab51
commit e9b2c9e0bb
4 changed files with 102 additions and 26 deletions

View file

@ -1036,21 +1036,7 @@ MonoBehaviour:
SoundSequences: []
EligibleHits: []
scheduledInputs: []
firstEnable: 0
startCameraMoveLength: 3
elephantRef: {fileID: -5564384145903586768, guid: b3040fc162a3d6342971f82026e4335f, type: 3}
elephantDistance: 10.304
elephantStart: 0.004
elephantHangCameraMoveLength: 2
elephantHangMaxDip: 1
elephantReleaseMoveLength: 8.304
giraffeRef: {fileID: 5248028064811562821, guid: 72e69b6337a6bc04f86ffcf5bcedab92, type: 3}
giraffeDistance: 20
giraffeStart: 10
afterGiraffeExtraDistance: 25.04
monkeysRef: {fileID: -3114631264593203074, guid: f52ef60e472be3047bb77f54d5a3229d, type: 3}
monkeysDistance: 20
monkeysStart: 10
oneMonkeyRef: {fileID: 7370747047491091311, guid: 0dfca7cb5fedf0d40aa26ffd9b4595ae, type: 3}
oneMonkeyDistance: 10.304
oneMonkeyStart: 0.004
_elephant: {fileID: -5564384145903586768, guid: b3040fc162a3d6342971f82026e4335f, type: 3}
_giraffe: {fileID: 5248028064811562821, guid: 72e69b6337a6bc04f86ffcf5bcedab92, type: 3}
_monkeysLong: {fileID: -3114631264593203074, guid: f52ef60e472be3047bb77f54d5a3229d, type: 3}
_monkeysShort: {fileID: 7370747047491091311, guid: 0dfca7cb5fedf0d40aa26ffd9b4595ae, type: 3}

View file

@ -1,5 +1,36 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1961063600439490
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2131794628642567477}
m_Layer: 0
m_Name: Grip
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2131794628642567477
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1961063600439490}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: -2.014, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2616646720197201304}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &74792210795109364
GameObject:
m_ObjectHideFlags: 0
@ -113,6 +144,7 @@ Transform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3049806664453001319}
- {fileID: 2131794628642567477}
m_Father: {fileID: 6285390310926959546}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -526,11 +558,12 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 2f9ee457016acdc4eb5dbfdc03be0d6f, type: 3}
m_Name:
m_EditorClassIdentifier:
holdLength: 2
fullRotateAngle: 160
anim: {fileID: 6198430257364661693}
type: 0
rotatePivot: {fileID: 2616646720197201304}
_fullRotRange: 120
_spawnDistance: 2.602
_holdLength: 2
_ease: 4
_rotateRoot: {fileID: 2616646720197201304}
_gripPoint: {fileID: 2131794628642567477}
--- !u!1 &7805847212563886084
GameObject:
m_ObjectHideFlags: 0

View file

@ -7,7 +7,56 @@ namespace HeavenStudio.Games.Scripts_AnimalAcrobat
{
public class AcrobatObstacle : MonoBehaviour
{
[Header("Values")]
[SerializeField] private float _fullRotRange;
[SerializeField] private float _spawnDistance;
[SerializeField] private double _holdLength;
[SerializeField] private EasingFunction.Ease _ease = EasingFunction.Ease.EaseInOutQuad;
private double _startBeat;
private float _halfRotRange;
private EasingFunction.Function _func;
public float SpawnDistance => _spawnDistance;
[Header("Components")]
[SerializeField] private Transform _rotateRoot;
[SerializeField] private Transform _gripPoint;
private void Awake()
{
_halfRotRange = _fullRotRange * 0.5f;
_func = EasingFunction.GetEasingFunction(_ease);
}
public void SetStartBeat(double beat)
{
_startBeat = beat;
Update();
}
public float GetRotationDistance()
{
float result = Mathf.Cos((_fullRotRange + 180) * Mathf.Deg2Rad) * _gripPoint.localPosition.y;
return Mathf.Abs(result * 2);
}
private void Update()
{
var cond = Conductor.instance;
if (!cond.isPlaying) return;
float normalNoMod = cond.GetPositionFromBeat(_startBeat, _holdLength);
float normalizedBeat = normalNoMod % 1;
if (Mathf.Floor(normalNoMod) % 2 != 0)
{
normalizedBeat = 1 - normalizedBeat;
}
float newAngleZ = _func(-_halfRotRange, _halfRotRange, normalizedBeat);
_rotateRoot.localEulerAngles = new Vector3(0, 0, newAngleZ);
}
}
}

View file

@ -2,6 +2,7 @@ using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Jukebox;
using HeavenStudio.Util;
namespace HeavenStudio.Games.Loaders
{
@ -39,11 +40,18 @@ namespace HeavenStudio.Games.Loaders
namespace HeavenStudio.Games
{
using HeavenStudio.Games.Scripts_AnimalAcrobat;
using HeavenStudio.Util;
using Scripts_AnimalAcrobat;
public class AnimalAcrobat : Minigame
{
[Header("Animal Prefabs")]
[SerializeField] private AcrobatObstacle _elephant;
[SerializeField] private AcrobatObstacle _giraffe, _monkeysLong, _monkeysShort;
private void Awake()
{
Instantiate(_elephant, transform);
}
}
}