Camera Tilt和Camera Offset效果,以及退出,重载功能
This commit is contained in:
32818
Assets/FR2_Cache.asset
32818
Assets/FR2_Cache.asset
File diff suppressed because it is too large
Load Diff
433
Assets/Prefabs/GeneralEffects/CameraOffsetEffect.prefab
Normal file
433
Assets/Prefabs/GeneralEffects/CameraOffsetEffect.prefab
Normal file
@@ -0,0 +1,433 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &5030288017655597913
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6794014747502131782}
|
||||
- component: {fileID: 2505559936379693214}
|
||||
m_Layer: 0
|
||||
m_Name: CameraOffsetEffect
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &6794014747502131782
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5030288017655597913}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &2505559936379693214
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5030288017655597913}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 6da43522623d4704e979466dc7650b65, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
Feedbacks: []
|
||||
InitializationMode: 2
|
||||
AutoInitialization: 1
|
||||
SafeMode: 3
|
||||
Direction: 0
|
||||
AutoChangeDirectionOnEnd: 0
|
||||
AutoPlayOnStart: 0
|
||||
AutoPlayOnEnable: 0
|
||||
ForceTimescaleMode: 0
|
||||
ForcedTimescaleMode: 1
|
||||
DurationMultiplier: 1
|
||||
TimescaleMultiplier: 1
|
||||
RandomizeDuration: 0
|
||||
RandomDurationMultiplier: {x: 0.5, y: 1.5}
|
||||
DisplayFullDurationDetails: 0
|
||||
PlayerTimescaleMode: 1
|
||||
OnlyPlayIfWithinRange: 0
|
||||
RangeCenter: {fileID: 0}
|
||||
RangeDistance: 5
|
||||
UseRangeFalloff: 0
|
||||
RangeFalloff:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
RemapRangeFalloff: {x: 0, y: 1}
|
||||
IgnoreRangeEvents: 0
|
||||
CooldownDuration: 0
|
||||
InitialDelay: 0
|
||||
CanPlay: 1
|
||||
CanPlayWhileAlreadyPlaying: 1
|
||||
ChanceToPlay: 100
|
||||
FeedbacksIntensity: 1
|
||||
Events:
|
||||
TriggerMMFeedbacksEvents: 0
|
||||
TriggerUnityEvents: 1
|
||||
OnPlay:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
OnPause:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
OnResume:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
OnRevert:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
OnComplete:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
OnRestoreInitialValues:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
OnSkipToTheEnd:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
OnInitializationComplete:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
OnEnable:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
OnDisable:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
DebugActive: 0
|
||||
FeedbacksList:
|
||||
- rid: 7796554106344046592
|
||||
KeepPlayModeChanges: 0
|
||||
PerformanceMode: 0
|
||||
StopFeedbacksOnDisable: 0
|
||||
PlayCount: 0
|
||||
references:
|
||||
version: 2
|
||||
RefIds:
|
||||
- rid: 7796554106344046592
|
||||
type: {class: MMF_Position, ns: MoreMountains.Feedbacks, asm: MoreMountains.Tools}
|
||||
data:
|
||||
Active: 1
|
||||
UniqueID: 782374892
|
||||
Label: Position
|
||||
ChannelMode: 0
|
||||
Channel: 0
|
||||
MMChannelDefinition: {fileID: 0}
|
||||
Chance: 100
|
||||
DisplayColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
Timing:
|
||||
TimescaleMode: 0
|
||||
ExcludeFromHoldingPauses: 0
|
||||
ContributeToTotalDuration: 1
|
||||
InitialDelay: 0
|
||||
CooldownDuration: 0
|
||||
InterruptsOnStop: 1
|
||||
NumberOfRepeats: 0
|
||||
RepeatForever: 0
|
||||
DelayBetweenRepeats: 1
|
||||
PlayCount: 0
|
||||
LimitPlayCount: 0
|
||||
MaxPlayCount: 3
|
||||
SetPlayCountToZeroOnReset: 0
|
||||
MMFeedbacksDirectionCondition: 0
|
||||
PlayDirection: 0
|
||||
ConstantIntensity: 0
|
||||
UseIntensityInterval: 0
|
||||
IntensityIntervalMin: 0
|
||||
IntensityIntervalMax: 0
|
||||
Sequence: {fileID: 0}
|
||||
TrackID: 0
|
||||
Quantized: 0
|
||||
TargetBPM: 120
|
||||
AutomatedTargetAcquisition:
|
||||
Mode: 0
|
||||
ChildIndex: 0
|
||||
RandomizeOutput: 0
|
||||
RandomMultiplier: {x: 0.8, y: 1}
|
||||
RandomizeDuration: 0
|
||||
RandomDurationMultiplier: {x: 0.5, y: 2}
|
||||
UseRange: 0
|
||||
RangeDistance: 5
|
||||
UseRangeFalloff: 0
|
||||
RangeFalloff:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
RemapRangeFalloff: {x: 0, y: 1}
|
||||
AutomaticShakerSetupButton:
|
||||
ButtonText:
|
||||
Owner: {fileID: 2505559936379693214}
|
||||
DebugActive: 0
|
||||
AnimatePositionTarget: {fileID: 0}
|
||||
Mode: 0
|
||||
Space: 1
|
||||
RandomizeRemap: 0
|
||||
AnimatePositionDuration: 0.2
|
||||
AnimatePositionTween:
|
||||
MMTweenDefinitionType: 1
|
||||
MMTweenCurve: 4
|
||||
Curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 0.3
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
Initialized: 0
|
||||
RemapCurveZero: 0
|
||||
RemapCurveZeroAlt: 0
|
||||
RemapCurveOne: 1
|
||||
RemapCurveOneAlt: 1
|
||||
AnimateX: 0
|
||||
AnimatePositionTweenX:
|
||||
MMTweenDefinitionType: 1
|
||||
MMTweenCurve: 4
|
||||
Curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 0.3
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 0.6
|
||||
value: -1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
Initialized: 0
|
||||
AnimateY: 0
|
||||
AnimatePositionTweenY:
|
||||
MMTweenDefinitionType: 1
|
||||
MMTweenCurve: 4
|
||||
Curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 0.3
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 0.6
|
||||
value: -1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
Initialized: 0
|
||||
AnimateZ: 0
|
||||
AnimatePositionTweenZ:
|
||||
MMTweenDefinitionType: 1
|
||||
MMTweenCurve: 4
|
||||
Curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 0.3
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 0.6
|
||||
value: -1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
Initialized: 0
|
||||
AllowAdditivePlays: 0
|
||||
RelativePosition: 1
|
||||
DeterminePositionsOnPlay: 0
|
||||
InitialPosition: {x: 0, y: 0, z: 0}
|
||||
DestinationPosition: {x: 1, y: 1, z: 1}
|
||||
InitialPositionTransform: {fileID: 0}
|
||||
DestinationPositionTransform: {fileID: 0}
|
||||
AnimatePositionCurveX:
|
||||
serializedVersion: 2
|
||||
m_Curve: []
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
AnimatePositionCurveY:
|
||||
serializedVersion: 2
|
||||
m_Curve: []
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
AnimatePositionCurveZ:
|
||||
serializedVersion: 2
|
||||
m_Curve: []
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
AnimatePositionCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve: []
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 02438906cbddfc34784c655e47dccd5f
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -295,7 +295,7 @@ MonoBehaviour:
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
Initialized: 0
|
||||
AnimateZ: 1
|
||||
AnimateZ: 0
|
||||
AnimateRotationTweenZ:
|
||||
MMTweenDefinitionType: 1
|
||||
MMTweenCurve: 4
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -541,6 +541,81 @@ MonoBehaviour:
|
||||
m_MipBias: 0
|
||||
m_VarianceClampScale: 0.9
|
||||
m_ContrastAdaptiveSharpening: 0
|
||||
--- !u!1 &155916413
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 155916414}
|
||||
- component: {fileID: 155916416}
|
||||
- component: {fileID: 155916415}
|
||||
m_Layer: 5
|
||||
m_Name: Image
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &155916414
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 155916413}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 721762453}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: -57.9, y: 0}
|
||||
m_SizeDelta: {x: 36, y: 39}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &155916415
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 155916413}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0.40251565, g: 0.40251565, b: 0.40251565, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300002, guid: 8a9605cca7152fc4bbef9451d4171c96, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!222 &155916416
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 155916413}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &168941670
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -2568,6 +2643,142 @@ CanvasRenderer:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 565984382}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &566658023
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 566658024}
|
||||
- component: {fileID: 566658027}
|
||||
- component: {fileID: 566658026}
|
||||
m_Layer: 5
|
||||
m_Name: Text (TMP)
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &566658024
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 566658023}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 721762453}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 30, y: 0}
|
||||
m_SizeDelta: {x: -60, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &566658026
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 566658023}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: Quit
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 3497dcff4899a0948918d45e2dd1209d, type: 2}
|
||||
m_sharedMaterial: {fileID: 1619957366814478166, guid: 3497dcff4899a0948918d45e2dd1209d,
|
||||
type: 2}
|
||||
m_fontSharedMaterials:
|
||||
- {fileID: -8493678639131513909, guid: e19e7b858b7058d478d5725621422819, type: 2}
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4281479730
|
||||
m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 24
|
||||
m_fontSizeBase: 24
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 2
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_enableWordWrapping: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 1
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!222 &566658027
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 566658023}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &571415733
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -3197,6 +3408,128 @@ CanvasRenderer:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 714771748}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &721762452
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 721762453}
|
||||
- component: {fileID: 721762456}
|
||||
- component: {fileID: 721762455}
|
||||
- component: {fileID: 721762454}
|
||||
m_Layer: 5
|
||||
m_Name: QuitButton
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &721762453
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 721762452}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 566658024}
|
||||
- {fileID: 155916414}
|
||||
m_Father: {fileID: 4337614255172217536}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 500, y: 50}
|
||||
m_SizeDelta: {x: 200, y: 60}
|
||||
m_Pivot: {x: 0, y: 0}
|
||||
--- !u!114 &721762454
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 721762452}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Navigation:
|
||||
m_Mode: 3
|
||||
m_WrapAround: 0
|
||||
m_SelectOnUp: {fileID: 0}
|
||||
m_SelectOnDown: {fileID: 0}
|
||||
m_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 1
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||
m_ColorMultiplier: 1
|
||||
m_FadeDuration: 0.1
|
||||
m_SpriteState:
|
||||
m_HighlightedSprite: {fileID: 0}
|
||||
m_PressedSprite: {fileID: 0}
|
||||
m_SelectedSprite: {fileID: 0}
|
||||
m_DisabledSprite: {fileID: 0}
|
||||
m_AnimationTriggers:
|
||||
m_NormalTrigger: Normal
|
||||
m_HighlightedTrigger: Highlighted
|
||||
m_PressedTrigger: Pressed
|
||||
m_SelectedTrigger: Selected
|
||||
m_DisabledTrigger: Disabled
|
||||
m_Interactable: 1
|
||||
m_TargetGraphic: {fileID: 721762455}
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!114 &721762455
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 721762452}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 08e9163b666d842f498665c7a876c2ff, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!222 &721762456
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 721762452}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &750099204
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -3470,7 +3803,7 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 481ab606793a67349be805c13febeba0, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
mTarget: {fileID: 4337614253286199203}
|
||||
mTarget: {fileID: 566658026}
|
||||
mAlignment_RTL: 514
|
||||
mAlignment_LTR: 514
|
||||
mAlignmentWasRTL: 0
|
||||
@@ -8069,7 +8402,7 @@ MonoBehaviour:
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: "\u8BBE\u7F6E"
|
||||
m_text: Settings
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 3497dcff4899a0948918d45e2dd1209d, type: 2}
|
||||
m_sharedMaterial: {fileID: 1619957366814478166, guid: 3497dcff4899a0948918d45e2dd1209d,
|
||||
@@ -14632,6 +14965,7 @@ RectTransform:
|
||||
- {fileID: 4337614253782299621}
|
||||
- {fileID: 4337614254594138373}
|
||||
- {fileID: 4337614253628246447}
|
||||
- {fileID: 721762453}
|
||||
m_Father: {fileID: 4337614254416964847}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
@@ -14683,8 +15017,10 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier:
|
||||
canvasGroup: {fileID: 4337614255172217539}
|
||||
background: {fileID: 4337614254701446952}
|
||||
logText: {fileID: 1901763590}
|
||||
createEmptyProjectButton: {fileID: 62317627}
|
||||
editorSettingsButton: {fileID: 4337614253628246446}
|
||||
quitButton: {fileID: 721762454}
|
||||
--- !u!224 &4337614255185891858
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@@ -6,13 +6,15 @@ using System.Text.RegularExpressions;
|
||||
using Ichni.RhythmGame;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace Ichni.Editor
|
||||
{
|
||||
public partial class ToolBar : StaticWindow
|
||||
{
|
||||
[Title("Buttons")]
|
||||
[Title("Buttons")] public Button escapeButton;
|
||||
public Button reloadButton;
|
||||
public Button projectInfoButton;
|
||||
public Button songInfoButton;
|
||||
public Button saveButton;
|
||||
@@ -27,6 +29,8 @@ namespace Ichni.Editor
|
||||
protected override void Start()
|
||||
{
|
||||
base.Start();
|
||||
escapeButton.onClick.AddListener(GenerateEscapeConfirmWindow);
|
||||
reloadButton.onClick.AddListener(GenerateReloadConfirmWindow);
|
||||
saveButton.onClick.AddListener(EditorManager.instance.projectManager.saveManager.Save);
|
||||
exportButton.onClick.AddListener(EditorManager.instance.projectManager.exportManager.Export);
|
||||
clipSaveButton.onClick.AddListener(GenerateSaveClipWindow);
|
||||
@@ -37,6 +41,46 @@ namespace Ichni.Editor
|
||||
|
||||
public partial class ToolBar
|
||||
{
|
||||
private void GenerateEscapeConfirmWindow()
|
||||
{
|
||||
GeneralSecondaryWindow escapeConfirmWindow =
|
||||
Instantiate(EditorManager.instance.basePrefabs.generalSecondaryWindow,
|
||||
EditorManager.instance.uiManager.mainPage.mainCanvas.GetComponent<RectTransform>()).GetComponent<GeneralSecondaryWindow>();
|
||||
|
||||
escapeConfirmWindow.Initialize("Confirm Escape");
|
||||
|
||||
var container = escapeConfirmWindow.GenerateContainer();
|
||||
var clipSettings = container.GenerateSubcontainer(3);
|
||||
var applyClipButton = escapeConfirmWindow.GenerateButton(clipSettings, "Yes", () =>
|
||||
{
|
||||
SceneManager.LoadScene("StartMenu");
|
||||
});
|
||||
var cancelButton = escapeConfirmWindow.GenerateButton(clipSettings, "No", () =>
|
||||
{
|
||||
escapeConfirmWindow.closeButton.onClick.Invoke();
|
||||
});
|
||||
}
|
||||
|
||||
private void GenerateReloadConfirmWindow()
|
||||
{
|
||||
GeneralSecondaryWindow escapeConfirmWindow =
|
||||
Instantiate(EditorManager.instance.basePrefabs.generalSecondaryWindow,
|
||||
EditorManager.instance.uiManager.mainPage.mainCanvas.GetComponent<RectTransform>()).GetComponent<GeneralSecondaryWindow>();
|
||||
|
||||
escapeConfirmWindow.Initialize("Confirm Reload");
|
||||
|
||||
var container = escapeConfirmWindow.GenerateContainer();
|
||||
var clipSettings = container.GenerateSubcontainer(3);
|
||||
var applyClipButton = escapeConfirmWindow.GenerateButton(clipSettings, "Yes", () =>
|
||||
{
|
||||
SceneManager.LoadScene("EditorScene");
|
||||
});
|
||||
var cancelButton = escapeConfirmWindow.GenerateButton(clipSettings, "No", () =>
|
||||
{
|
||||
escapeConfirmWindow.closeButton.onClick.Invoke();
|
||||
});
|
||||
}
|
||||
|
||||
private void GenerateSaveClipWindow()
|
||||
{
|
||||
GameElement currentElement = EditorManager.instance.operationManager.currentSelectedElements[0];
|
||||
|
||||
@@ -127,7 +127,10 @@ namespace Ichni.RhythmGame
|
||||
{
|
||||
{ "Bloom", new BloomEffect(1, 2, CustomCurvePresets.Parabolic(1, 0, 1)) },
|
||||
{ "CameraShake", new CameraShakeEffect(1, 50, 1, 1, 1) },
|
||||
{"CameraTilt", new CameraTiltEffect(0.2f, 15f, CustomCurvePresets.CustomPeakTimeParabolic(1,0,1, 0.3f))},
|
||||
{"CameraOffset", new CameraOffsetEffect(0.2f, Vector3.forward, CustomCurvePresets.CustomPeakTimeParabolic(1,0,1,0.3f))},
|
||||
{"CameraTilt", new CameraTiltEffect(false, 0.2f, 5f, CustomCurvePresets.CustomPeakTimeParabolic(1,0,1, 0.3f),
|
||||
false, 0.2f, 5f, CustomCurvePresets.CustomPeakTimeParabolic(1,0,1, 0.3f),
|
||||
false, 0.2f, 5f, CustomCurvePresets.CustomPeakTimeParabolic(1,0,1, 0.3f))},
|
||||
{ "ChromaticAberration", new ChromaticAberrationEffect(1, 1, CustomCurvePresets.Parabolic(1, 0, 1)) },
|
||||
{ "Vignette", new VignetteEffect(1, 1, 0.4f, Color.black, CustomCurvePresets.Parabolic(1, 0, 1)) },
|
||||
{ "SetInteger", new SetIntegerEffect("New Variable", 0, false, 0, 1) },
|
||||
|
||||
@@ -89,6 +89,7 @@ namespace Ichni.RhythmGame
|
||||
{
|
||||
EditorManager.instance.beatmapContainer = new BeatmapContainer();
|
||||
EditorManager.instance.beatmapContainer.matchedBM = this;
|
||||
GameElement_BM.identifier.Clear();
|
||||
|
||||
elementList.ForEach(element =>
|
||||
{
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Ichni.Editor;
|
||||
using Ichni.RhythmGame.Beatmap;
|
||||
using Lean.Pool;
|
||||
using MoreMountains.Feedbacks;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Ichni.RhythmGame
|
||||
{
|
||||
public class CameraOffsetEffect : EffectBase
|
||||
{
|
||||
public float duration;
|
||||
public Vector3 offsetPeak;
|
||||
public AnimationCurve offsetCurve;
|
||||
|
||||
public CameraOffsetEffect(float duration, Vector3 offsetPeak, AnimationCurve offsetCurve)
|
||||
{
|
||||
this.effectTime = 0;
|
||||
this.duration = duration;
|
||||
this.offsetPeak = offsetPeak;
|
||||
this.offsetCurve = offsetCurve;
|
||||
}
|
||||
|
||||
public override void Adjust()
|
||||
{
|
||||
if (!EditorManager.instance.cameraManager.haveGameCamera)
|
||||
{
|
||||
LogWindow.Log("No game camera found, cannot apply camera tilt effect.", Color.yellow);
|
||||
return;
|
||||
}
|
||||
|
||||
MMF_Player effect = LeanPool.Spawn(EditorManager.instance.basePrefabs.cameraTiltEffect).GetComponent<MMF_Player>();
|
||||
effect.GetFeedbackOfType<MMF_Position>().AnimatePositionTarget = EditorManager.instance.cameraManager.gameCamera.gameCamera.gameObject;
|
||||
effect.GetFeedbackOfType<MMF_Position>().AnimatePositionDuration = duration;
|
||||
effect.GetFeedbackOfType<MMF_Position>().DestinationPosition = offsetPeak;
|
||||
effect.GetFeedbackOfType<MMF_Position>().AnimatePositionCurve = offsetCurve;
|
||||
effect.PlayFeedbacks();
|
||||
LeanPool.Despawn(effect.gameObject, duration);
|
||||
}
|
||||
|
||||
public override EffectBase_BM ConvertToBM()
|
||||
{
|
||||
return new CameraOffsetEffect_BM(duration, offsetPeak, offsetCurve);
|
||||
}
|
||||
|
||||
public override void SetUpInspector()
|
||||
{
|
||||
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
|
||||
var container = inspector.GenerateContainer("Camera Tilt");
|
||||
var subcontainer1 = container.GenerateSubcontainer(3);
|
||||
var durationField = inspector.GenerateInputField(this, subcontainer1, "Duration", nameof(duration));
|
||||
var curveButton = inspector.GenerateButton(this, subcontainer1, "Offset Curve", () =>
|
||||
{
|
||||
var intensityCurveWindow =
|
||||
inspector.GenerateCompositeParameterWindow(this, "Tilt Curve", nameof(offsetCurve)).SetAsCustomCurve();
|
||||
});
|
||||
var subcontainer2 = container.GenerateSubcontainer(3);
|
||||
var xPeakField = inspector.GenerateVector3InputField(this, subcontainer2, "Offset Peak", nameof(offsetPeak));
|
||||
}
|
||||
}
|
||||
|
||||
namespace Beatmap
|
||||
{
|
||||
public class CameraOffsetEffect_BM : EffectBase_BM
|
||||
{
|
||||
public float duration;
|
||||
public Vector3 offsetPeak;
|
||||
public AnimationCurve offsetCurve;
|
||||
|
||||
public CameraOffsetEffect_BM(float duration, Vector3 offsetPeak, AnimationCurve offsetCurve)
|
||||
{
|
||||
this.duration = duration;
|
||||
this.offsetPeak = offsetPeak;
|
||||
this.offsetCurve = offsetCurve;
|
||||
}
|
||||
|
||||
public override EffectBase ConvertToGameType(GameElement attachedGameElement)
|
||||
{
|
||||
return new CameraOffsetEffect(duration, offsetPeak, offsetCurve);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ecf5a81a3dbf2dc4d83fdd949763835b
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -11,16 +11,41 @@ namespace Ichni.RhythmGame
|
||||
{
|
||||
public class CameraTiltEffect : EffectBase
|
||||
{
|
||||
public float duration;
|
||||
public float peakZ;
|
||||
public AnimationCurve tiltCurve;
|
||||
public bool haveXTilt;
|
||||
public float xDuration;
|
||||
public float xPeak;
|
||||
public AnimationCurve tiltCurveX;
|
||||
|
||||
public CameraTiltEffect(float duration, float peakZ, AnimationCurve tiltCurve)
|
||||
public bool haveYTilt;
|
||||
public float yDuration;
|
||||
public float yPeak;
|
||||
public AnimationCurve tiltCurveY;
|
||||
|
||||
public bool haveZTilt;
|
||||
public float zDuration;
|
||||
public float zPeak;
|
||||
public AnimationCurve tiltCurveZ;
|
||||
|
||||
public CameraTiltEffect(bool haveXTilt, float xDuration, float xPeak, AnimationCurve tiltCurveX,
|
||||
bool haveYTilt, float yDuration, float yPeak, AnimationCurve tiltCurveY,
|
||||
bool haveZTilt, float zDuration, float zPeak, AnimationCurve tiltCurveZ)
|
||||
{
|
||||
this.effectTime = 0;
|
||||
this.duration = duration;
|
||||
this.peakZ = peakZ;
|
||||
this.tiltCurve = tiltCurve;
|
||||
|
||||
this.haveXTilt = haveXTilt;
|
||||
this.xDuration = xDuration;
|
||||
this.xPeak = xPeak;
|
||||
this.tiltCurveX = tiltCurveX;
|
||||
|
||||
this.haveYTilt = haveYTilt;
|
||||
this.yDuration = yDuration;
|
||||
this.yPeak = yPeak;
|
||||
this.tiltCurveY = tiltCurveY;
|
||||
|
||||
this.haveZTilt = haveZTilt;
|
||||
this.zDuration = zDuration;
|
||||
this.zPeak = zPeak;
|
||||
this.tiltCurveZ = tiltCurveZ;
|
||||
}
|
||||
|
||||
public override void Adjust()
|
||||
@@ -31,31 +56,89 @@ namespace Ichni.RhythmGame
|
||||
return;
|
||||
}
|
||||
|
||||
MMF_Player effect = LeanPool.Spawn(EditorManager.instance.basePrefabs.cameraTiltEffect).GetComponent<MMF_Player>();
|
||||
effect.GetFeedbackOfType<MMF_Rotation>().AnimateRotationTarget = EditorManager.instance.cameraManager.gameCamera.gameCamera.transform;
|
||||
effect.GetFeedbackOfType<MMF_Rotation>().AnimateRotationDuration = duration;
|
||||
effect.GetFeedbackOfType<MMF_Rotation>().RemapCurveOne = peakZ;
|
||||
effect.GetFeedbackOfType<MMF_Rotation>().AnimateRotationZ = tiltCurve;
|
||||
effect.PlayFeedbacks();
|
||||
LeanPool.Despawn(effect.gameObject, duration);
|
||||
if (haveXTilt)
|
||||
{
|
||||
MMF_Player effect = LeanPool.Spawn(EditorManager.instance.basePrefabs.cameraTiltEffect).GetComponent<MMF_Player>();
|
||||
effect.GetFeedbackOfType<MMF_Rotation>().AnimateRotationTarget = EditorManager.instance.cameraManager.gameCamera.gameCamera.transform;
|
||||
effect.GetFeedbackOfType<MMF_Rotation>().AnimateRotationDuration = xDuration;
|
||||
effect.GetFeedbackOfType<MMF_Rotation>().AnimateX = true;
|
||||
effect.GetFeedbackOfType<MMF_Rotation>().AnimateY = false;
|
||||
effect.GetFeedbackOfType<MMF_Rotation>().AnimateZ = false;
|
||||
effect.GetFeedbackOfType<MMF_Rotation>().RemapCurveOne = xPeak;
|
||||
effect.GetFeedbackOfType<MMF_Rotation>().AnimateRotationX = tiltCurveX;
|
||||
effect.PlayFeedbacks();
|
||||
LeanPool.Despawn(effect.gameObject, xDuration);
|
||||
}
|
||||
|
||||
if (haveYTilt)
|
||||
{
|
||||
MMF_Player effect = LeanPool.Spawn(EditorManager.instance.basePrefabs.cameraTiltEffect).GetComponent<MMF_Player>();
|
||||
effect.GetFeedbackOfType<MMF_Rotation>().AnimateRotationTarget = EditorManager.instance.cameraManager.gameCamera.gameCamera.transform;
|
||||
effect.GetFeedbackOfType<MMF_Rotation>().AnimateRotationDuration = yDuration;
|
||||
effect.GetFeedbackOfType<MMF_Rotation>().AnimateX = false;
|
||||
effect.GetFeedbackOfType<MMF_Rotation>().AnimateY = true;
|
||||
effect.GetFeedbackOfType<MMF_Rotation>().AnimateZ = false;
|
||||
effect.GetFeedbackOfType<MMF_Rotation>().RemapCurveOne = yPeak;
|
||||
effect.GetFeedbackOfType<MMF_Rotation>().AnimateRotationY = tiltCurveY;
|
||||
effect.PlayFeedbacks();
|
||||
LeanPool.Despawn(effect.gameObject, yDuration);
|
||||
}
|
||||
|
||||
if (haveZTilt)
|
||||
{
|
||||
MMF_Player effect = LeanPool.Spawn(EditorManager.instance.basePrefabs.cameraTiltEffect).GetComponent<MMF_Player>();
|
||||
effect.GetFeedbackOfType<MMF_Rotation>().AnimateRotationTarget = EditorManager.instance.cameraManager.gameCamera.gameCamera.transform;
|
||||
effect.GetFeedbackOfType<MMF_Rotation>().AnimateRotationDuration = zDuration;
|
||||
effect.GetFeedbackOfType<MMF_Rotation>().AnimateX = false;
|
||||
effect.GetFeedbackOfType<MMF_Rotation>().AnimateZ = true;
|
||||
effect.GetFeedbackOfType<MMF_Rotation>().AnimateY = false;
|
||||
effect.GetFeedbackOfType<MMF_Rotation>().RemapCurveOne = zPeak;
|
||||
effect.GetFeedbackOfType<MMF_Rotation>().AnimateRotationZ = tiltCurveZ;
|
||||
effect.PlayFeedbacks();
|
||||
LeanPool.Despawn(effect.gameObject, zDuration);
|
||||
}
|
||||
}
|
||||
|
||||
public override EffectBase_BM ConvertToBM()
|
||||
{
|
||||
return new CameraTiltEffect_BM(duration, peakZ, tiltCurve);
|
||||
return new CameraTiltEffect_BM(
|
||||
haveXTilt, xDuration, xPeak, tiltCurveX,
|
||||
haveYTilt, yDuration, yPeak, tiltCurveY,
|
||||
haveZTilt, zDuration, zPeak, tiltCurveZ);
|
||||
}
|
||||
|
||||
public override void SetUpInspector()
|
||||
{
|
||||
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
|
||||
var container = inspector.GenerateContainer("Camera Tilt");
|
||||
var effectSettings = container.GenerateSubcontainer(3);
|
||||
var effectTimeField = inspector.GenerateInputField(this, effectSettings, "Duration", nameof(duration));
|
||||
var bloomPeakField = inspector.GenerateInputField(this, effectSettings, "Z Peak Value", nameof(peakZ));
|
||||
var intensityCurveButton = inspector.GenerateButton(this, effectSettings, "Intensity Curve", () =>
|
||||
var xSubcontainer= container.GenerateSubcontainer(3);
|
||||
var haveXTileToggle = inspector.GenerateToggle(this, xSubcontainer, "Have X Tilt", nameof(haveXTilt));
|
||||
var xDurationField = inspector.GenerateInputField(this, xSubcontainer, "Duration", nameof(xDuration));
|
||||
var xPeakField = inspector.GenerateInputField(this, xSubcontainer, "X Peak Value", nameof(xPeak));
|
||||
var xCurveButton = inspector.GenerateButton(this, xSubcontainer, "Intensity Curve", () =>
|
||||
{
|
||||
var intensityCurveWindow =
|
||||
inspector.GenerateCompositeParameterWindow(this, "Tilt Curve", nameof(tiltCurve)).SetAsCustomCurve();
|
||||
inspector.GenerateCompositeParameterWindow(this, "Tilt Curve", nameof(tiltCurveX)).SetAsCustomCurve();
|
||||
});
|
||||
|
||||
var ySubcontainer = container.GenerateSubcontainer(3);
|
||||
var haveYTileToggle = inspector.GenerateToggle(this, ySubcontainer, "Have Y Tilt", nameof(haveYTilt));
|
||||
var yDurationField = inspector.GenerateInputField(this, ySubcontainer, "Duration", nameof(yDuration));
|
||||
var yPeakField = inspector.GenerateInputField(this, ySubcontainer, "Y Peak Value", nameof(yPeak));
|
||||
var yCurveButton = inspector.GenerateButton(this, ySubcontainer, "Intensity Curve", () =>
|
||||
{
|
||||
var intensityCurveWindow =
|
||||
inspector.GenerateCompositeParameterWindow(this, "Tilt Curve", nameof(tiltCurveY)).SetAsCustomCurve();
|
||||
});
|
||||
|
||||
var zSubcontainer = container.GenerateSubcontainer(3);
|
||||
var haveZTileToggle = inspector.GenerateToggle(this, zSubcontainer, "Have Z Tilt", nameof(haveZTilt));
|
||||
var zDurationField = inspector.GenerateInputField(this, zSubcontainer, "Duration", nameof(zDuration));
|
||||
var zPeakField = inspector.GenerateInputField(this, zSubcontainer, "Z Peak Value", nameof(zPeak));
|
||||
var zCurveButton = inspector.GenerateButton(this, zSubcontainer, "Intensity Curve", () =>
|
||||
{
|
||||
var intensityCurveWindow =
|
||||
inspector.GenerateCompositeParameterWindow(this, "Tilt Curve", nameof(tiltCurveZ)).SetAsCustomCurve();
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -64,21 +147,45 @@ namespace Ichni.RhythmGame
|
||||
{
|
||||
public class CameraTiltEffect_BM : EffectBase_BM
|
||||
{
|
||||
public float duration;
|
||||
public float peakZ;
|
||||
public AnimationCurve tiltCurve;
|
||||
|
||||
public CameraTiltEffect_BM(float duration, float peakZ, AnimationCurve tiltCurve)
|
||||
public bool haveXTilt;
|
||||
public float xDuration;
|
||||
public float xPeak;
|
||||
public AnimationCurve tiltCurveX;
|
||||
|
||||
public bool haveYTilt;
|
||||
public float yDuration;
|
||||
public float yPeak;
|
||||
public AnimationCurve tiltCurveY;
|
||||
|
||||
public bool haveZTilt;
|
||||
public float zDuration;
|
||||
public float zPeak;
|
||||
public AnimationCurve tiltCurveZ;
|
||||
public CameraTiltEffect_BM(bool haveXTilt, float xDuration, float xPeak, AnimationCurve tiltCurveX,
|
||||
bool haveYTilt, float yDuration, float yPeak, AnimationCurve tiltCurveY,
|
||||
bool haveZTilt, float zDuration, float zPeak, AnimationCurve tiltCurveZ)
|
||||
{
|
||||
this.effectTime = 0;
|
||||
this.duration = duration;
|
||||
this.peakZ = peakZ;
|
||||
this.tiltCurve = tiltCurve;
|
||||
|
||||
this.haveXTilt = haveXTilt;
|
||||
this.xDuration = xDuration;
|
||||
this.xPeak = xPeak;
|
||||
this.tiltCurveX = tiltCurveX;
|
||||
this.haveYTilt = haveYTilt;
|
||||
this.yDuration = yDuration;
|
||||
this.yPeak = yPeak;
|
||||
this.tiltCurveY = tiltCurveY;
|
||||
this.haveZTilt = haveZTilt;
|
||||
this.zDuration = zDuration;
|
||||
this.zPeak = zPeak;
|
||||
this.tiltCurveZ = tiltCurveZ;
|
||||
}
|
||||
|
||||
public override EffectBase ConvertToGameType(GameElement attachedGameElement)
|
||||
{
|
||||
return new CameraTiltEffect(duration, peakZ, tiltCurve);
|
||||
return new CameraTiltEffect(haveXTilt, xDuration, xPeak, tiltCurveX,
|
||||
haveYTilt, yDuration, yPeak, tiltCurveY,
|
||||
haveZTilt, zDuration, zPeak, tiltCurveZ);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ namespace Ichni.RhythmGame
|
||||
public float areaRadius;
|
||||
protected override GameObject GetHintImagePrefab() => EditorManager.instance.basePrefabs.areaHint;
|
||||
|
||||
private float CurrentScreenRatio() => Screen.width / 1920f;
|
||||
private float CurrentScreenRatio() => Screen.height / 1080f;
|
||||
|
||||
public TouchAreaJudgeUnit(NoteBase note, float areaRadius) : base(note)
|
||||
{
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Ichni.StartMenu;
|
||||
using TMPro;
|
||||
using UniRx;
|
||||
using UnityEngine;
|
||||
@@ -53,7 +54,12 @@ namespace Ichni
|
||||
|
||||
public void LoadThemeBundles(List<string> list)
|
||||
{
|
||||
AssetBundle.UnloadAllAssetBundles(true);
|
||||
loadedThemeBundleList.Clear();
|
||||
|
||||
LogWindow = StartMenuManager.instance.startPage.logText;
|
||||
LogWindow.text += "Loading ThemeBundles, Please wait...\n";
|
||||
|
||||
waitingBundleAmount = new IntReactiveProperty(list.Count);
|
||||
Debug.Log("Waiting for " + list.Count + " AssetBundles to load.");
|
||||
LogWindow.text += "Waiting for " + list.Count + " AssetBundles to load.\n";
|
||||
|
||||
@@ -13,16 +13,7 @@ namespace Ichni.StartMenu
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
if (instance == null)
|
||||
{
|
||||
instance = this;
|
||||
DontDestroyOnLoad(gameObject);
|
||||
}
|
||||
else if (instance != this)
|
||||
{
|
||||
Destroy(gameObject);
|
||||
return;
|
||||
}
|
||||
instance = this;
|
||||
|
||||
Application.targetFrameRate = 90;
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using DG.Tweening;
|
||||
using Michsky.MUIP;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Serialization;
|
||||
using UnityEngine.UI;
|
||||
@@ -12,9 +13,11 @@ namespace Ichni.StartMenu
|
||||
public partial class StartPage : StartMenuPage
|
||||
{
|
||||
public RectTransform background;
|
||||
public TMP_Text logText;
|
||||
|
||||
public ButtonManager createEmptyProjectButton;
|
||||
public Button editorSettingsButton;
|
||||
public Button quitButton;
|
||||
}
|
||||
|
||||
public partial class StartPage
|
||||
@@ -50,6 +53,7 @@ namespace Ichni.StartMenu
|
||||
{
|
||||
createEmptyProjectButton.onClick.AddListener(GoToNewProjectPage);
|
||||
editorSettingsButton.onClick.AddListener(GoToEditorSettingsPage);
|
||||
quitButton.onClick.AddListener(Application.Quit);
|
||||
}
|
||||
|
||||
private void GoToNewProjectPage()
|
||||
|
||||
Reference in New Issue
Block a user