Merge branch 'NewStory' of http://185.56.209.148/beyond/beyond into NewStory
This commit is contained in:
File diff suppressed because it is too large
Load Diff
637
Assets/Animations/CUT_SCENES/CH02/RUINED TOWNTimeline.playable
Normal file
637
Assets/Animations/CUT_SCENES/CH02/RUINED TOWNTimeline.playable
Normal file
@@ -0,0 +1,637 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-9004496542854398162
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 21bf7f712d84d26478ebe6a299f21738, type: 3}
|
||||
m_Name: Activation Track
|
||||
m_EditorClassIdentifier:
|
||||
m_Version: 3
|
||||
m_AnimClip: {fileID: 0}
|
||||
m_Locked: 0
|
||||
m_Muted: 0
|
||||
m_CustomPlayableFullTypename:
|
||||
m_Curves: {fileID: 0}
|
||||
m_Parent: {fileID: 11400000}
|
||||
m_Children: []
|
||||
m_Clips:
|
||||
- m_Version: 1
|
||||
m_Start: 0
|
||||
m_ClipIn: 0
|
||||
m_Asset: {fileID: 8291285022045805294}
|
||||
m_Duration: 10.1
|
||||
m_TimeScale: 1
|
||||
m_ParentTrack: {fileID: -9004496542854398162}
|
||||
m_EaseInDuration: 0
|
||||
m_EaseOutDuration: 0
|
||||
m_BlendInDuration: 0
|
||||
m_BlendOutDuration: 0
|
||||
m_MixInCurve:
|
||||
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: 1
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
m_MixOutCurve:
|
||||
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
|
||||
m_BlendInCurveMode: 0
|
||||
m_BlendOutCurveMode: 0
|
||||
m_ExposedParameterNames: []
|
||||
m_AnimationCurves: {fileID: 0}
|
||||
m_Recordable: 0
|
||||
m_PostExtrapolationMode: 0
|
||||
m_PreExtrapolationMode: 0
|
||||
m_PostExtrapolationTime: 0
|
||||
m_PreExtrapolationTime: 0
|
||||
m_DisplayName: Active
|
||||
m_Markers:
|
||||
m_Objects: []
|
||||
m_PostPlaybackState: 3
|
||||
--- !u!114 &-8585281870820356316
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 21bf7f712d84d26478ebe6a299f21738, type: 3}
|
||||
m_Name: Activation Track (1)
|
||||
m_EditorClassIdentifier:
|
||||
m_Version: 3
|
||||
m_AnimClip: {fileID: 0}
|
||||
m_Locked: 0
|
||||
m_Muted: 0
|
||||
m_CustomPlayableFullTypename:
|
||||
m_Curves: {fileID: 0}
|
||||
m_Parent: {fileID: 11400000}
|
||||
m_Children: []
|
||||
m_Clips: []
|
||||
m_Markers:
|
||||
m_Objects: []
|
||||
m_PostPlaybackState: 3
|
||||
--- !u!74 &-2028729715915619918
|
||||
AnimationClip:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Recorded
|
||||
serializedVersion: 7
|
||||
m_Legacy: 0
|
||||
m_Compressed: 0
|
||||
m_UseHighQualityCurve: 1
|
||||
m_RotationCurves:
|
||||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: {x: -0.0074944287, y: 0.01578362, z: -0.004803707, w: 0.9998358}
|
||||
inSlope: {x: 0, y: 0, z: 0, w: 0}
|
||||
outSlope: {x: 0.0009305147, y: 0.000012072135, z: 0.00091012014, w: 0.00001755947}
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334, w: 0.33333334}
|
||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334, w: 0.33333334}
|
||||
- serializedVersion: 3
|
||||
time: 10.183333
|
||||
value: {x: -0.037476152, y: 0.01592124, z: -0.00433206, w: 0.9991613}
|
||||
inSlope: {x: 0.0009061418, y: 0.00004353285, z: 0.001014791, w: 0.00003511894}
|
||||
outSlope: {x: 0, y: 0, z: 0, w: 0}
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334, w: 0.33333334}
|
||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334, w: 0.33333334}
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
path:
|
||||
m_CompressedRotationCurves: []
|
||||
m_EulerCurves: []
|
||||
m_PositionCurves:
|
||||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
inSlope: {x: 0, y: 0, z: 0}
|
||||
outSlope: {x: 0, y: 0, z: 0}
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
- serializedVersion: 3
|
||||
time: 10.183333
|
||||
value: {x: -1.0944138, y: 1.452816, z: 21.121784}
|
||||
inSlope: {x: 0, y: 0, z: 0}
|
||||
outSlope: {x: 0, y: 0, z: 0}
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
path:
|
||||
m_ScaleCurves: []
|
||||
m_FloatCurves: []
|
||||
m_PPtrCurves: []
|
||||
m_SampleRate: 60
|
||||
m_WrapMode: 0
|
||||
m_Bounds:
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
m_Extent: {x: 0, y: 0, z: 0}
|
||||
m_ClipBindingConstant:
|
||||
genericBindings:
|
||||
- serializedVersion: 2
|
||||
path: 0
|
||||
attribute: 1
|
||||
script: {fileID: 0}
|
||||
typeID: 4
|
||||
customType: 0
|
||||
isPPtrCurve: 0
|
||||
isIntCurve: 0
|
||||
isSerializeReferenceCurve: 0
|
||||
- serializedVersion: 2
|
||||
path: 0
|
||||
attribute: 2
|
||||
script: {fileID: 0}
|
||||
typeID: 4
|
||||
customType: 0
|
||||
isPPtrCurve: 0
|
||||
isIntCurve: 0
|
||||
isSerializeReferenceCurve: 0
|
||||
pptrCurveMapping: []
|
||||
m_AnimationClipSettings:
|
||||
serializedVersion: 2
|
||||
m_AdditiveReferencePoseClip: {fileID: 0}
|
||||
m_AdditiveReferencePoseTime: 0
|
||||
m_StartTime: 0
|
||||
m_StopTime: 10.183333
|
||||
m_OrientationOffsetY: 0
|
||||
m_Level: 0
|
||||
m_CycleOffset: 0
|
||||
m_HasAdditiveReferencePose: 0
|
||||
m_LoopTime: 0
|
||||
m_LoopBlend: 0
|
||||
m_LoopBlendOrientation: 0
|
||||
m_LoopBlendPositionY: 0
|
||||
m_LoopBlendPositionXZ: 0
|
||||
m_KeepOriginalOrientation: 0
|
||||
m_KeepOriginalPositionY: 1
|
||||
m_KeepOriginalPositionXZ: 0
|
||||
m_HeightFromFeet: 0
|
||||
m_Mirror: 0
|
||||
m_EditorCurves:
|
||||
- serializedVersion: 2
|
||||
curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 10.183333
|
||||
value: -1.0944138
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: m_LocalPosition.x
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
flags: 0
|
||||
- serializedVersion: 2
|
||||
curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 10.183333
|
||||
value: 1.452816
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: m_LocalPosition.y
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
flags: 0
|
||||
- serializedVersion: 2
|
||||
curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 10.183333
|
||||
value: 21.121784
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: m_LocalPosition.z
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
flags: 0
|
||||
- serializedVersion: 2
|
||||
curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: -0.0074944287
|
||||
inSlope: 0
|
||||
outSlope: 0.0009305147
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 10.183333
|
||||
value: -0.037476152
|
||||
inSlope: 0.0009061418
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: m_LocalRotation.x
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
flags: 0
|
||||
- serializedVersion: 2
|
||||
curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0.01578362
|
||||
inSlope: 0
|
||||
outSlope: 0.000012072135
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 10.183333
|
||||
value: 0.01592124
|
||||
inSlope: 0.00004353285
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: m_LocalRotation.y
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
flags: 0
|
||||
- serializedVersion: 2
|
||||
curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: -0.004803707
|
||||
inSlope: 0
|
||||
outSlope: 0.00091012014
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 10.183333
|
||||
value: -0.00433206
|
||||
inSlope: 0.001014791
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: m_LocalRotation.z
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
flags: 0
|
||||
- serializedVersion: 2
|
||||
curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0.9998358
|
||||
inSlope: 0
|
||||
outSlope: 0.00001755947
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 10.183333
|
||||
value: 0.9991613
|
||||
inSlope: 0.00003511894
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: m_LocalRotation.w
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
flags: 0
|
||||
m_EulerEditorCurves:
|
||||
- serializedVersion: 2
|
||||
curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: -0.85
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 10.183333
|
||||
value: 355.713
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: localEulerAngles.x
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
flags: 0
|
||||
- serializedVersion: 2
|
||||
curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 1.813
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 10.183333
|
||||
value: 1.847
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: localEulerAngles.y
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
flags: 0
|
||||
- serializedVersion: 2
|
||||
curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: -0.564
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 10.183333
|
||||
value: 359.434
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: localEulerAngles.z
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
flags: 0
|
||||
m_HasGenericRootTransform: 1
|
||||
m_HasMotionFloatCurves: 0
|
||||
m_Events: []
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: bfda56da833e2384a9677cd3c976a436, type: 3}
|
||||
m_Name: RUINED TOWNTimeline
|
||||
m_EditorClassIdentifier:
|
||||
m_Version: 0
|
||||
m_Tracks:
|
||||
- {fileID: 7528859772714158910}
|
||||
- {fileID: -9004496542854398162}
|
||||
- {fileID: -8585281870820356316}
|
||||
m_FixedDuration: 0
|
||||
m_EditorSettings:
|
||||
m_Framerate: 60
|
||||
m_ScenePreview: 1
|
||||
m_DurationMode: 0
|
||||
m_MarkerTrack: {fileID: 6386618471152514565}
|
||||
--- !u!114 &6386618471152514565
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 2a16748d9461eae46a725db9776d5390, type: 3}
|
||||
m_Name: Markers
|
||||
m_EditorClassIdentifier:
|
||||
m_Version: 3
|
||||
m_AnimClip: {fileID: 0}
|
||||
m_Locked: 0
|
||||
m_Muted: 0
|
||||
m_CustomPlayableFullTypename:
|
||||
m_Curves: {fileID: 0}
|
||||
m_Parent: {fileID: 11400000}
|
||||
m_Children: []
|
||||
m_Clips: []
|
||||
m_Markers:
|
||||
m_Objects: []
|
||||
--- !u!114 &7528859772714158910
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d21dcc2386d650c4597f3633c75a1f98, type: 3}
|
||||
m_Name: Animation Track
|
||||
m_EditorClassIdentifier:
|
||||
m_Version: 3
|
||||
m_AnimClip: {fileID: 0}
|
||||
m_Locked: 0
|
||||
m_Muted: 0
|
||||
m_CustomPlayableFullTypename:
|
||||
m_Curves: {fileID: 0}
|
||||
m_Parent: {fileID: 11400000}
|
||||
m_Children: []
|
||||
m_Clips: []
|
||||
m_Markers:
|
||||
m_Objects: []
|
||||
m_InfiniteClipPreExtrapolation: 1
|
||||
m_InfiniteClipPostExtrapolation: 1
|
||||
m_InfiniteClipOffsetPosition: {x: -73.43836, y: 44.42607, z: 52.09387}
|
||||
m_InfiniteClipOffsetEulerAngles: {x: 17.360558, y: 359.3233, z: 0.01886283}
|
||||
m_InfiniteClipTimeOffset: 0
|
||||
m_InfiniteClipRemoveOffset: 0
|
||||
m_InfiniteClipApplyFootIK: 1
|
||||
mInfiniteClipLoop: 0
|
||||
m_MatchTargetFields: 63
|
||||
m_Position: {x: 0, y: 0, z: 0}
|
||||
m_EulerAngles: {x: 0, y: 0, z: 0}
|
||||
m_AvatarMask: {fileID: 0}
|
||||
m_ApplyAvatarMask: 1
|
||||
m_TrackOffset: 0
|
||||
m_InfiniteClip: {fileID: -2028729715915619918}
|
||||
m_OpenClipOffsetRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_Rotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_ApplyOffsets: 0
|
||||
--- !u!114 &8291285022045805294
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fde0d25a170598d46a0b9dc16b4527a5, type: 3}
|
||||
m_Name: ActivationPlayableAsset
|
||||
m_EditorClassIdentifier:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d4372562d0bf9864cb984c399127a88c
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 45bb291542aa1d14fa306b1ee70bbb97
|
||||
guid: a81ccddcd49644749975586e11749cc1
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
|
||||
@@ -27305,6 +27305,590 @@ MonoBehaviour:
|
||||
height: 30
|
||||
canvasScrollPosition: {x: 0, y: 0}
|
||||
canvasZoom: 0.84689856
|
||||
- id: 110
|
||||
fields:
|
||||
- title: Title
|
||||
value: CH02/RUINEDTOWN/CH02_vo_lever_wanderer_01
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Pictures
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Description
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Actor
|
||||
value: 1
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Conversant
|
||||
value: 2
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
overrideSettings:
|
||||
useOverrides: 0
|
||||
overrideSubtitleSettings: 0
|
||||
showNPCSubtitlesDuringLine: 1
|
||||
showNPCSubtitlesWithResponses: 1
|
||||
showPCSubtitlesDuringLine: 0
|
||||
skipPCSubtitleAfterResponseMenu: 0
|
||||
subtitleCharsPerSecond: 30
|
||||
minSubtitleSeconds: 2
|
||||
continueButton: 0
|
||||
overrideSequenceSettings: 0
|
||||
defaultSequence:
|
||||
defaultPlayerSequence:
|
||||
defaultResponseMenuSequence:
|
||||
overrideInputSettings: 0
|
||||
alwaysForceResponseMenu: 1
|
||||
includeInvalidEntries: 0
|
||||
responseTimeout: 0
|
||||
cancelSubtitle:
|
||||
key: 27
|
||||
buttonName:
|
||||
cancelConversation:
|
||||
key: 27
|
||||
buttonName:
|
||||
nodeColor:
|
||||
dialogueEntries:
|
||||
- id: 0
|
||||
fields:
|
||||
- title: Title
|
||||
value: START
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Pictures
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Description
|
||||
value:
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Actor
|
||||
value: 1
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Conversant
|
||||
value: 2
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Menu Text
|
||||
value:
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Dialogue Text
|
||||
value:
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Parenthetical
|
||||
value:
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Audio Files
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Video File
|
||||
value:
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Sequence
|
||||
value: None()
|
||||
type: 0
|
||||
typeString:
|
||||
- title: pl
|
||||
value:
|
||||
type: 4
|
||||
typeString: CustomFieldType_Localization
|
||||
conversationID: 110
|
||||
isRoot: 0
|
||||
isGroup: 0
|
||||
nodeColor:
|
||||
delaySimStatus: 0
|
||||
falseConditionAction:
|
||||
conditionPriority: 2
|
||||
outgoingLinks:
|
||||
- originConversationID: 110
|
||||
originDialogueID: 0
|
||||
destinationConversationID: 110
|
||||
destinationDialogueID: 1
|
||||
isConnector: 0
|
||||
priority: 2
|
||||
conditionsString:
|
||||
userScript:
|
||||
onExecute:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
canvasRect:
|
||||
serializedVersion: 2
|
||||
x: 20
|
||||
y: 30
|
||||
width: 160
|
||||
height: 30
|
||||
- id: 1
|
||||
fields:
|
||||
- title: Title
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Pictures
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Description
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Actor
|
||||
value: 2
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Conversant
|
||||
value: 1
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Menu Text
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Dialogue Text
|
||||
value: No riddles this time, huh?
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Parenthetical
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Audio Files
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Video File
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Sequence
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: pl
|
||||
value:
|
||||
type: 4
|
||||
typeString: CustomFieldType_Localization
|
||||
conversationID: 110
|
||||
isRoot: 0
|
||||
isGroup: 0
|
||||
nodeColor:
|
||||
delaySimStatus: 0
|
||||
falseConditionAction: Block
|
||||
conditionPriority: 2
|
||||
outgoingLinks: []
|
||||
conditionsString:
|
||||
userScript:
|
||||
onExecute:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
canvasRect:
|
||||
serializedVersion: 2
|
||||
x: 20
|
||||
y: 80
|
||||
width: 160
|
||||
height: 30
|
||||
canvasScrollPosition: {x: 0, y: 0}
|
||||
canvasZoom: 1
|
||||
- id: 111
|
||||
fields:
|
||||
- title: Title
|
||||
value: CH02/RUINEDTOWN/CH02_vo_lever_wanderer_02
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Pictures
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Description
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Actor
|
||||
value: 1
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Conversant
|
||||
value: 2
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
overrideSettings:
|
||||
useOverrides: 0
|
||||
overrideSubtitleSettings: 0
|
||||
showNPCSubtitlesDuringLine: 1
|
||||
showNPCSubtitlesWithResponses: 1
|
||||
showPCSubtitlesDuringLine: 0
|
||||
skipPCSubtitleAfterResponseMenu: 0
|
||||
subtitleCharsPerSecond: 30
|
||||
minSubtitleSeconds: 2
|
||||
continueButton: 0
|
||||
overrideSequenceSettings: 0
|
||||
defaultSequence:
|
||||
defaultPlayerSequence:
|
||||
defaultResponseMenuSequence:
|
||||
overrideInputSettings: 0
|
||||
alwaysForceResponseMenu: 1
|
||||
includeInvalidEntries: 0
|
||||
responseTimeout: 0
|
||||
cancelSubtitle:
|
||||
key: 27
|
||||
buttonName:
|
||||
cancelConversation:
|
||||
key: 27
|
||||
buttonName:
|
||||
nodeColor:
|
||||
dialogueEntries:
|
||||
- id: 0
|
||||
fields:
|
||||
- title: Title
|
||||
value: START
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Pictures
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Description
|
||||
value:
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Actor
|
||||
value: 1
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Conversant
|
||||
value: 2
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Menu Text
|
||||
value:
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Dialogue Text
|
||||
value:
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Parenthetical
|
||||
value:
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Audio Files
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Video File
|
||||
value:
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Sequence
|
||||
value: None()
|
||||
type: 0
|
||||
typeString:
|
||||
- title: pl
|
||||
value:
|
||||
type: 4
|
||||
typeString: CustomFieldType_Localization
|
||||
conversationID: 111
|
||||
isRoot: 0
|
||||
isGroup: 0
|
||||
nodeColor:
|
||||
delaySimStatus: 0
|
||||
falseConditionAction:
|
||||
conditionPriority: 2
|
||||
outgoingLinks:
|
||||
- originConversationID: 111
|
||||
originDialogueID: 0
|
||||
destinationConversationID: 111
|
||||
destinationDialogueID: 1
|
||||
isConnector: 0
|
||||
priority: 2
|
||||
conditionsString:
|
||||
userScript:
|
||||
onExecute:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
canvasRect:
|
||||
serializedVersion: 2
|
||||
x: 20
|
||||
y: 30
|
||||
width: 160
|
||||
height: 30
|
||||
- id: 1
|
||||
fields:
|
||||
- title: Title
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Pictures
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Description
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Actor
|
||||
value: 2
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Conversant
|
||||
value: 1
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Menu Text
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Dialogue Text
|
||||
value: Well, that should do it.
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Parenthetical
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Audio Files
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Video File
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Sequence
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: pl
|
||||
value:
|
||||
type: 4
|
||||
typeString: CustomFieldType_Localization
|
||||
conversationID: 111
|
||||
isRoot: 0
|
||||
isGroup: 0
|
||||
nodeColor:
|
||||
delaySimStatus: 0
|
||||
falseConditionAction: Block
|
||||
conditionPriority: 2
|
||||
outgoingLinks: []
|
||||
conditionsString:
|
||||
userScript:
|
||||
onExecute:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
canvasRect:
|
||||
serializedVersion: 2
|
||||
x: 20
|
||||
y: 80
|
||||
width: 160
|
||||
height: 30
|
||||
canvasScrollPosition: {x: 0, y: 0}
|
||||
canvasZoom: 1
|
||||
- id: 112
|
||||
fields:
|
||||
- title: Title
|
||||
value: CH02/RUINEDTOWN/CH02_cs_ancaran_wanderer_00
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Pictures
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Description
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Actor
|
||||
value: 1
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Conversant
|
||||
value: 2
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
overrideSettings:
|
||||
useOverrides: 0
|
||||
overrideSubtitleSettings: 0
|
||||
showNPCSubtitlesDuringLine: 1
|
||||
showNPCSubtitlesWithResponses: 1
|
||||
showPCSubtitlesDuringLine: 0
|
||||
skipPCSubtitleAfterResponseMenu: 0
|
||||
subtitleCharsPerSecond: 30
|
||||
minSubtitleSeconds: 2
|
||||
continueButton: 0
|
||||
overrideSequenceSettings: 0
|
||||
defaultSequence:
|
||||
defaultPlayerSequence:
|
||||
defaultResponseMenuSequence:
|
||||
overrideInputSettings: 0
|
||||
alwaysForceResponseMenu: 1
|
||||
includeInvalidEntries: 0
|
||||
responseTimeout: 0
|
||||
cancelSubtitle:
|
||||
key: 27
|
||||
buttonName:
|
||||
cancelConversation:
|
||||
key: 27
|
||||
buttonName:
|
||||
nodeColor:
|
||||
dialogueEntries:
|
||||
- id: 0
|
||||
fields:
|
||||
- title: Title
|
||||
value: START
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Pictures
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Description
|
||||
value:
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Actor
|
||||
value: 1
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Conversant
|
||||
value: 2
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Menu Text
|
||||
value:
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Dialogue Text
|
||||
value:
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Parenthetical
|
||||
value:
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Audio Files
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Video File
|
||||
value:
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Sequence
|
||||
value: None()
|
||||
type: 0
|
||||
typeString:
|
||||
- title: pl
|
||||
value:
|
||||
type: 4
|
||||
typeString: CustomFieldType_Localization
|
||||
conversationID: 112
|
||||
isRoot: 0
|
||||
isGroup: 0
|
||||
nodeColor:
|
||||
delaySimStatus: 0
|
||||
falseConditionAction: Block
|
||||
conditionPriority: 2
|
||||
outgoingLinks:
|
||||
- originConversationID: 112
|
||||
originDialogueID: 0
|
||||
destinationConversationID: 112
|
||||
destinationDialogueID: 1
|
||||
isConnector: 0
|
||||
priority: 2
|
||||
conditionsString:
|
||||
userScript:
|
||||
onExecute:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
canvasRect:
|
||||
serializedVersion: 2
|
||||
x: 20
|
||||
y: 30
|
||||
width: 160
|
||||
height: 30
|
||||
- id: 1
|
||||
fields:
|
||||
- title: Title
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Pictures
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Description
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Actor
|
||||
value: 2
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Conversant
|
||||
value: 1
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Menu Text
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Dialogue Text
|
||||
value: 'So this is Anarcan. Deserted ruins. Another dead end.
|
||||
|
||||
'
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Parenthetical
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Audio Files
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Video File
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Sequence
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: pl
|
||||
value:
|
||||
type: 4
|
||||
typeString: CustomFieldType_Localization
|
||||
conversationID: 112
|
||||
isRoot: 0
|
||||
isGroup: 0
|
||||
nodeColor:
|
||||
delaySimStatus: 0
|
||||
falseConditionAction: Block
|
||||
conditionPriority: 2
|
||||
outgoingLinks: []
|
||||
conditionsString:
|
||||
userScript:
|
||||
onExecute:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
canvasRect:
|
||||
serializedVersion: 2
|
||||
x: 20
|
||||
y: 80
|
||||
width: 160
|
||||
height: 30
|
||||
canvasScrollPosition: {x: 0, y: 0}
|
||||
canvasZoom: 1
|
||||
syncInfo:
|
||||
syncActors: 0
|
||||
syncItems: 0
|
||||
|
||||
8
Assets/Editor/CopyMultiComponents.meta
Normal file
8
Assets/Editor/CopyMultiComponents.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 924ca79ec87f67f46863f205fc662e87
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Editor/CopyMultiComponents/Window.meta
Normal file
8
Assets/Editor/CopyMultiComponents/Window.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4a5f0cfe1d8155848a03d9cd997055cb
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
430
Assets/Editor/CopyMultiComponents/Window/CopyComponentsGUI.cs
Normal file
430
Assets/Editor/CopyMultiComponents/Window/CopyComponentsGUI.cs
Normal file
@@ -0,0 +1,430 @@
|
||||
/// <summary>
|
||||
/// Tool Name: Copy Components.
|
||||
/// Version 1.0.0
|
||||
/// Copyrights Denislav Georgiev - Respect Studios LTD
|
||||
///
|
||||
/// Info: This tool allows you to Copy Components, from one object to many other at the same time.
|
||||
/// It support option for choosing, which component shoud be copied
|
||||
///
|
||||
/// It supports 3 options for copying
|
||||
/// 1: All Components - Will copy all components from the Source, to the target objects
|
||||
/// 2: Only New - Will copy only if the target object does NOT have that component
|
||||
/// 3: Copy Values - Will copy only the component values
|
||||
/// </summary>
|
||||
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using UnityEditor;
|
||||
using System.Collections.Generic;
|
||||
|
||||
// Create the Menu
|
||||
public class CopyComponentsMenu : Editor
|
||||
{
|
||||
[MenuItem("Window/Copy Multi Components", false, 33)]
|
||||
public static void CopyComponentsGUI()
|
||||
{
|
||||
CopyComponentsGUI copyComponentsGUI = (CopyComponentsGUI) EditorWindow.GetWindow(typeof(CopyComponentsGUI));
|
||||
|
||||
copyComponentsGUI.minSize = new Vector2(350, 340);
|
||||
|
||||
#if UNITY_5_0 || UNITY_5_1 || UNITY_4_6
|
||||
copyComponentsGUI.title = "Copy Components";
|
||||
#else
|
||||
copyComponentsGUI.titleContent = new GUIContent("Copy Components");
|
||||
#endif
|
||||
copyComponentsGUI.Show ();
|
||||
}
|
||||
}
|
||||
|
||||
// Create the GUI
|
||||
public class CopyComponentsGUI : EditorWindow
|
||||
{
|
||||
// Private Variables
|
||||
private GameObject sourceGO; // The gameObject, that, the components will be copied from
|
||||
private Component[] sourceComponents = new Component[0]; // The components, that will be copied...
|
||||
|
||||
private string[] copyOptionPop = new string[] {"All Components", "Only New", "Only Values"};
|
||||
private int copyOptionIndex = 1;
|
||||
|
||||
private Vector2 fromScrollPos = Vector2.zero; // ScrollView
|
||||
private Vector2 toScrollPos = Vector2.zero;
|
||||
|
||||
private string componentName; // Used to clear the unneeded strings, from the components names
|
||||
private List<string> componentsName = new List<string>(); // Will hold the component's names, thas are shown in the GUI
|
||||
private List<GameObject> targetGO = new List<GameObject>(); // List of objects, to paste components to
|
||||
private string removeName; // Helper to remove part of the string of component namne
|
||||
private string removeSystem; // Helper to remove part of the string of component namne
|
||||
|
||||
private bool copyAllCompT = true;
|
||||
private bool[] copyCurrentCompT; // If the current component shoud be copied
|
||||
|
||||
void OnEnable()
|
||||
{
|
||||
sourceComponents = new Component[0]; // Reset sourceComponents at start
|
||||
}
|
||||
|
||||
#region Drawing GUI
|
||||
void OnGUI() // Building the GUI
|
||||
{
|
||||
EditorGUILayout.BeginVertical(GUILayout.Width(position.width), GUILayout.Height(position.height));
|
||||
{
|
||||
// Handles.DrawLine(new Vector3(position.width / 2, 20, 0), new Vector3 (position.width / 2, 200, 0));
|
||||
|
||||
GUILayout.Space(10);
|
||||
|
||||
// Begin the first Horizontal, for the object, that we'll copy components from
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
{
|
||||
GUILayout.Space(10);
|
||||
#if UNITY_4_6
|
||||
EditorGUILayout.BeginVertical(GUILayout.Width(position.width/2 - 10), GUILayout.Height(position.height - 70));
|
||||
EditorGUI.HelpBox(new Rect(5, 45, position.width/2 - 10, position.height - 115), "", MessageType.None);
|
||||
#else
|
||||
EditorGUILayout.BeginVertical(EditorStyles.helpBox ,GUILayout.Width(position.width/2 - 10), GUILayout.Height(position.height - 70));
|
||||
#endif
|
||||
{
|
||||
#region "Copy From" side of GUI
|
||||
GUILayout.Label("Source (Copy From):");
|
||||
|
||||
EditorGUI.BeginChangeCheck(); // Start Checking if the ObjField have been changed
|
||||
{
|
||||
sourceGO = EditorGUILayout.ObjectField(sourceGO, typeof(GameObject), true) as GameObject ;
|
||||
}
|
||||
if (EditorGUI.EndChangeCheck()) // If there is a change, call to ExposeComponents
|
||||
{
|
||||
ExposeComponents();
|
||||
}
|
||||
|
||||
GUILayout.Space(20);
|
||||
|
||||
if (sourceGO != null)
|
||||
{
|
||||
GUILayout.Label ("Components To Copy: ");
|
||||
#if UNITY_4_6
|
||||
EditorGUILayout.BeginVertical(GUILayout.Width(position.width / 2 - 20), GUILayout.Height(position.height - 160));
|
||||
EditorGUI.HelpBox(new Rect(10, 83, position.width / 2 - 20, position.height - 160), "", MessageType.None);
|
||||
#else
|
||||
EditorGUILayout.BeginVertical(EditorStyles.helpBox, GUILayout.Width(position.width / 2 - 20), GUILayout.Height(position.height - 160));
|
||||
#endif
|
||||
{
|
||||
fromScrollPos = EditorGUILayout.BeginScrollView(fromScrollPos); // Adding scroll view for the Components List
|
||||
|
||||
// Check if All has Toggled. If so call the Void to change all Toggles
|
||||
EditorGUI.BeginChangeCheck();
|
||||
copyAllCompT = GUILayout.Toggle(copyAllCompT, new GUIContent("All", "Toggle All Components"));
|
||||
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
ToggleAllChanged();
|
||||
// END check
|
||||
|
||||
if (sourceComponents.Length > 0)
|
||||
{
|
||||
for (int i = 0; i < sourceComponents.Length; i++) // Loop through all components
|
||||
{
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
// Make Toggle for all components names
|
||||
copyCurrentCompT[i] = GUILayout.Toggle(copyCurrentCompT[i], new GUIContent(componentsName[i].ToString(), "Shoud this component be copied"));
|
||||
|
||||
EditorGUILayout.EndHorizontal();
|
||||
}
|
||||
}
|
||||
EditorGUILayout.EndScrollView();
|
||||
}
|
||||
EditorGUILayout.EndVertical();
|
||||
}
|
||||
}
|
||||
EditorGUILayout.EndVertical();
|
||||
#endregion
|
||||
|
||||
#region "Paste To" side of GUI
|
||||
|
||||
// Start Second Vertical layout for the PasteTo UI Elements
|
||||
#if UNITY_4_6
|
||||
EditorGUILayout.BeginVertical(GUILayout.Width(position.width / 2 - 10), GUILayout.Height(position.height - 70));
|
||||
EditorGUI.HelpBox(new Rect(position.width / 2, 25, position.width / 2 - 10, position.height - 112), "", MessageType.None);
|
||||
#else
|
||||
EditorGUILayout.BeginVertical(EditorStyles.helpBox, GUILayout.Width(position.width / 2 - 10), GUILayout.Height(position.height - 70));
|
||||
#endif
|
||||
{
|
||||
GUILayout.Label("Targets (Paste To):"); // Label
|
||||
|
||||
if (targetGO.Count > 0)
|
||||
{
|
||||
toScrollPos = EditorGUILayout.BeginScrollView(toScrollPos); // Adding scroll view for the ObjectsList
|
||||
{
|
||||
for (int i = 0; i < targetGO.Count; i++)
|
||||
{
|
||||
EditorGUI.BeginChangeCheck(); // Check if some of the fields is changed afterwards
|
||||
// Add Field for every selected object and expose them in the GUI
|
||||
targetGO[i] = EditorGUILayout.ObjectField(targetGO[i], typeof(GameObject), true) as GameObject;
|
||||
|
||||
if (EditorGUI.EndChangeCheck()) // If some of the fields is changed manually
|
||||
{
|
||||
ManualAddedPasteObj(targetGO[i], i); // Call to tell that some objField is manually changed
|
||||
}
|
||||
}
|
||||
}
|
||||
EditorGUILayout.EndScrollView();
|
||||
}
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
{
|
||||
if (GUILayout.Button("+", GUILayout.Width(25), GUILayout.Height(25))) // Button to Add to the List
|
||||
AddPasteObject();
|
||||
|
||||
if (GUILayout.Button("-", GUILayout.Width(25), GUILayout.Height(25))) // Button to Remove from the List
|
||||
RemovePasteObject();
|
||||
|
||||
GUILayout.Space(position.width / 4 - 80); // Some Space before the ClearObjects bttn
|
||||
|
||||
if (GUILayout.Button("Clear Objects", GUILayout.Height(25)))
|
||||
ClearPasteObjList();
|
||||
}
|
||||
EditorGUILayout.EndHorizontal();
|
||||
}
|
||||
EditorGUILayout.EndVertical();
|
||||
#endregion
|
||||
}
|
||||
EditorGUILayout.EndHorizontal();
|
||||
|
||||
EditorGUIUtility.labelWidth = 100; // The width of the PopUp Label
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
{
|
||||
copyOptionIndex = EditorGUILayout.Popup("Copy Options:", copyOptionIndex, copyOptionPop, GUILayout.Width(230));
|
||||
GUILayout.Space(15);
|
||||
}
|
||||
EditorGUILayout.EndHorizontal();
|
||||
|
||||
if (GUILayout.Button("Copy Components", GUILayout.Height(30)))
|
||||
{
|
||||
CopyComponents(); // Call to copy actual components
|
||||
}
|
||||
}
|
||||
EditorGUILayout.EndVertical();
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
#region Expose Copy Components
|
||||
// WIll be called, only when the ObjectField changes, so it doesn't execute every frame
|
||||
private void ExposeComponents()
|
||||
{
|
||||
componentsName.Clear(); // Clears the list
|
||||
|
||||
if (sourceGO != null) // If there is attached object in the ObjectField
|
||||
{
|
||||
sourceComponents = sourceGO.GetComponents<Component>(); // Get all components of the gameObject
|
||||
copyCurrentCompT = new bool[sourceComponents.Length]; // Set the CheckBox array size
|
||||
|
||||
for (int i = 0; i < sourceComponents.Length; i++) // Loop through all components
|
||||
{
|
||||
if (sourceComponents[i] != null)
|
||||
{
|
||||
copyCurrentCompT[i] = true; // Set all Checkboxes On
|
||||
|
||||
componentName = sourceComponents[i].ToString(); // Get the component names
|
||||
removeName = sourceGO.name + " ("; // Remove name and " (" from the name
|
||||
removeSystem = "UnityEngine."; // Remove UnityEngine from the name
|
||||
componentName = componentName.Remove(componentName.Length - 1); // Remove the last character ")", from name
|
||||
|
||||
componentName = componentName.Replace (removeName, ""); // replace the string, to remove the name of the GO
|
||||
componentName = componentName.Replace (removeSystem, ""); // Removes the UnityEngine from string
|
||||
|
||||
componentsName.Add(componentName);
|
||||
}
|
||||
else // If the Component Is Missing
|
||||
{
|
||||
componentsName.Add("***Missing Component***"); // Add as Missing
|
||||
copyCurrentCompT[i] = false;
|
||||
Debug.LogWarning("One of the Components is Null! Probably a Missing or Non-Compilled Script. Will be Skipped");
|
||||
}
|
||||
}
|
||||
}
|
||||
else // Source GO is empty
|
||||
sourceComponents = new Component[0];
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Paste Object UI Management
|
||||
// To add PasteObjects
|
||||
private void AddPasteObject()
|
||||
{
|
||||
GameObject[] curSelection = Selection.gameObjects;
|
||||
|
||||
if (curSelection.Length > 0)
|
||||
{
|
||||
for (int i = 0; i < curSelection.Length; i++)
|
||||
{
|
||||
if (!targetGO.Contains(curSelection[i]))
|
||||
{
|
||||
if (curSelection[i] != sourceGO)
|
||||
targetGO.Add (curSelection[i]);
|
||||
else
|
||||
Debug.LogWarning("Attempt to add Source GameObject: \"" + curSelection[i].name + "\", to Targets List. Object Removed...");
|
||||
}
|
||||
else
|
||||
Debug.LogWarning("Object \" " + targetGO[i].name + "\", is allready in the List");
|
||||
}
|
||||
}
|
||||
else
|
||||
Debug.LogWarning("Select At Least One Object");
|
||||
}
|
||||
|
||||
// To remove the last element of the Paste Objects
|
||||
private void RemovePasteObject()
|
||||
{
|
||||
if (targetGO.Count > 0)
|
||||
targetGO.RemoveAt(targetGO.Count - 1);
|
||||
else
|
||||
Debug.LogWarning("Paste Objects List is Emptry!");
|
||||
}
|
||||
|
||||
private void ClearPasteObjList()
|
||||
{
|
||||
targetGO.Clear();
|
||||
}
|
||||
|
||||
// When we add manually Target Objects
|
||||
private void ManualAddedPasteObj(GameObject objChanged, int listNum)
|
||||
{
|
||||
if (targetGO.Count > 0) // If there are any target objects
|
||||
{
|
||||
for (int i = 0; i < targetGO.Count; i++) // Loop through them...
|
||||
{
|
||||
if (targetGO[i] != null) // If current Target Index (Field) is Not Empty
|
||||
{
|
||||
if (i != listNum)
|
||||
{
|
||||
if (targetGO[i] == objChanged)
|
||||
{
|
||||
// Warn user, that there is same object in more than one field
|
||||
Debug.LogWarning("Object: " + objChanged.name + ", was added in 2 fields");
|
||||
}
|
||||
}
|
||||
if (targetGO[i] == sourceGO) // If the Source is added as target
|
||||
Debug.LogWarning("Source GameObject: \"" + sourceGO.name + "\" was added in Field: " + (i + 1) + ". \nWill Copy and Paste to the same GameObject");
|
||||
}
|
||||
else
|
||||
Debug.LogWarning("Target Field was left Empty");
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Copy Components
|
||||
// Copy the actual components
|
||||
private void CopyComponents()
|
||||
{
|
||||
bool componentMatch = false;
|
||||
bool nullComponentFound = false; // Will be true, to show Warning, if there is a Null (Missing) Component
|
||||
|
||||
if (sourceComponents.Length > 0)
|
||||
{
|
||||
if (targetGO.Count > 0) // If there are TargetGO
|
||||
{
|
||||
for (int i = 0; i < targetGO.Count; i++) // Loop through all targetObjects
|
||||
{
|
||||
if (targetGO[i] != null)
|
||||
{
|
||||
Component[] targetComponents = targetGO[i].GetComponents<Component>(); // Get the component of the cur object
|
||||
|
||||
for (int a = 0; a < sourceComponents.Length; a++) // Loop through all Source Obj's Components
|
||||
{
|
||||
if (sourceComponents[a] == null) // If this component is Null
|
||||
continue; // Skip the loop and continue
|
||||
|
||||
if (copyCurrentCompT[a]) // If the current component shoud be copied
|
||||
{
|
||||
if (copyOptionIndex == 0) // If All shoud be copied
|
||||
{
|
||||
UnityEditorInternal.ComponentUtility.CopyComponent(sourceComponents[a]);
|
||||
UnityEditorInternal.ComponentUtility.PasteComponentAsNew(targetGO[i]);
|
||||
}
|
||||
|
||||
if (copyOptionIndex == 1 || copyOptionIndex == 2) // If Copy only new or Copy Values
|
||||
{
|
||||
componentMatch = false; // Set by default to false
|
||||
for (int z = 0; z < targetComponents.Length; z++) // Loop through all destination Obj's Components
|
||||
{
|
||||
if (targetComponents[z] == null) // If there is a Null Component, skip this loop
|
||||
{
|
||||
nullComponentFound = true;
|
||||
continue;
|
||||
}
|
||||
if (sourceComponents[a].GetType() == targetComponents[z].GetType()) // If the components match, The destination Obj have that component
|
||||
{
|
||||
componentMatch = true; // Set to true, so we can copy that component
|
||||
|
||||
if (copyOptionIndex == 2) // If copyValues is On, then Copy the values of the existing Components
|
||||
{
|
||||
UnityEditorInternal.ComponentUtility.CopyComponent(sourceComponents[a]);
|
||||
UnityEditorInternal.ComponentUtility.PasteComponentValues(targetComponents[z]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (copyOptionIndex == 1 ) // If Only New (Missing from Target) shoud be copied
|
||||
{
|
||||
if (!componentMatch && copyOptionIndex == 1) // If this component[a], doesn't exist in the TargetGO[i], copy it
|
||||
{
|
||||
UnityEditorInternal.ComponentUtility.CopyComponent(sourceComponents[a]);
|
||||
UnityEditorInternal.ComponentUtility.PasteComponentAsNew(targetGO[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
Debug.LogWarning("TargetField: " + i + " is Empty");
|
||||
}
|
||||
if (nullComponentFound) // If there is a Null Component
|
||||
Debug.LogWarning("Some of the Target Objects have Missing Component, which might cause problems");
|
||||
}
|
||||
else // If NO TargetGO added
|
||||
Debug.LogWarning("No Target GameObjects Added");
|
||||
}
|
||||
else
|
||||
Debug.LogWarning("No Components To Copy. Add a Source Object");
|
||||
}
|
||||
#endregion
|
||||
|
||||
// To Toggle All Components CheckBoxes
|
||||
private void ToggleAllChanged()
|
||||
{
|
||||
for (int i = 0; i < copyCurrentCompT.Length; i++)
|
||||
{
|
||||
copyCurrentCompT[i] = copyAllCompT;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Reset the GUI, when closed
|
||||
void OnDestroy()
|
||||
{
|
||||
sourceGO = null; // Reset the source Obj field
|
||||
copyOptionIndex = 1; // Reset Copy Popup
|
||||
sourceComponents = new Component[0]; // Reset the source Components Array
|
||||
copyCurrentCompT = new bool[0]; // Reset Components Toggle Array
|
||||
|
||||
componentsName.Clear (); // Clear ComponentsNames List
|
||||
targetGO.Clear (); // Clear Target Objects List
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2f6c301fa9c7945458d27b52f5d3a266
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 50347
|
||||
packageName: Copy Multi Components
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Editor/CopyMultiComponents/Window/CopyComponentsGUI.cs
|
||||
uploadId: 90740
|
||||
8
Assets/Editor/CopyMultiComponents/x_Docs.meta
Normal file
8
Assets/Editor/CopyMultiComponents/x_Docs.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c7ea5902e35494041bf153d404334c45
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Editor/CopyMultiComponents/x_Docs/CopyComponents_Docs.pdf
Normal file
BIN
Assets/Editor/CopyMultiComponents/x_Docs/CopyComponents_Docs.pdf
Normal file
Binary file not shown.
@@ -0,0 +1,14 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bb7947a57b32cce4fbcb1c73414600e9
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 50347
|
||||
packageName: Copy Multi Components
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Editor/CopyMultiComponents/x_Docs/CopyComponents_Docs.pdf
|
||||
uploadId: 90740
|
||||
171
Assets/Meshes/Props/Kociol/koci2 (4).prefab
Normal file
171
Assets/Meshes/Props/Kociol/koci2 (4).prefab
Normal file
@@ -0,0 +1,171 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1001 &2923916290059301970
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: -8679921383154817045, guid: ea064709bfa58d34c910c6ef611aace5,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 33
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ea064709bfa58d34c910c6ef611aace5,
|
||||
type: 3}
|
||||
propertyPath: m_LocalScale.x
|
||||
value: 5.5424166
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ea064709bfa58d34c910c6ef611aace5,
|
||||
type: 3}
|
||||
propertyPath: m_LocalScale.y
|
||||
value: 5.542416
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ea064709bfa58d34c910c6ef611aace5,
|
||||
type: 3}
|
||||
propertyPath: m_LocalScale.z
|
||||
value: 5.542417
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ea064709bfa58d34c910c6ef611aace5,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: -133.74
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ea064709bfa58d34c910c6ef611aace5,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 39.48
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ea064709bfa58d34c910c6ef611aace5,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 9.68
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ea064709bfa58d34c910c6ef611aace5,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 0.93898517
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ea064709bfa58d34c910c6ef611aace5,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0.01770398
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ea064709bfa58d34c910c6ef611aace5,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0.343467
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ea064709bfa58d34c910c6ef611aace5,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0.0048912265
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ea064709bfa58d34c910c6ef611aace5,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: -178.287
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ea064709bfa58d34c910c6ef611aace5,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: -139.798
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ea064709bfa58d34c910c6ef611aace5,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 178.776
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -7511558181221131132, guid: ea064709bfa58d34c910c6ef611aace5,
|
||||
type: 3}
|
||||
propertyPath: m_CastShadows
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -7511558181221131132, guid: ea064709bfa58d34c910c6ef611aace5,
|
||||
type: 3}
|
||||
propertyPath: 'm_Materials.Array.data[0]'
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: 6dfb688b4f3215043b8f6dd8ee4fe628, type: 2}
|
||||
- target: {fileID: 919132149155446097, guid: ea064709bfa58d34c910c6ef611aace5,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: koci2 (4)
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 919132149155446097, guid: ea064709bfa58d34c910c6ef611aace5,
|
||||
type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 919132149155446097, guid: ea064709bfa58d34c910c6ef611aace5,
|
||||
type: 3}
|
||||
propertyPath: m_StaticEditorFlags
|
||||
value: 2147483647
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents:
|
||||
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: ea064709bfa58d34c910c6ef611aace5,
|
||||
type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 3879712112063137544}
|
||||
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: ea064709bfa58d34c910c6ef611aace5,
|
||||
type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 4154830738626687160}
|
||||
m_SourcePrefab: {fileID: 100100000, guid: ea064709bfa58d34c910c6ef611aace5, type: 3}
|
||||
--- !u!1 &2617364950766274819 stripped
|
||||
GameObject:
|
||||
m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: ea064709bfa58d34c910c6ef611aace5,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 2923916290059301970}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!64 &3879712112063137544
|
||||
MeshCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2617364950766274819}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 5
|
||||
m_Convex: 1
|
||||
m_CookingOptions: 30
|
||||
m_Mesh: {fileID: 6571506424998889177, guid: ea064709bfa58d34c910c6ef611aace5, type: 3}
|
||||
--- !u!205 &4154830738626687160
|
||||
LODGroup:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2617364950766274819}
|
||||
serializedVersion: 2
|
||||
m_LocalReferencePoint: {x: 0.0015999973, y: -0.0003719628, z: -0.036420494}
|
||||
m_Size: 0.78083813
|
||||
m_FadeMode: 0
|
||||
m_AnimateCrossFading: 0
|
||||
m_LastLODIsBillboard: 0
|
||||
m_LODs:
|
||||
- screenRelativeHeight: 0.13156137
|
||||
fadeTransitionWidth: 0
|
||||
renderers:
|
||||
- renderer: {fileID: 4562784131206146262}
|
||||
m_Enabled: 1
|
||||
--- !u!23 &4562784131206146262 stripped
|
||||
MeshRenderer:
|
||||
m_CorrespondingSourceObject: {fileID: -7511558181221131132, guid: ea064709bfa58d34c910c6ef611aace5,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 2923916290059301970}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
7
Assets/Meshes/Props/Kociol/koci2 (4).prefab.meta
Normal file
7
Assets/Meshes/Props/Kociol/koci2 (4).prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5a9a0f0dcef455149a4711d065066763
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -81998,6 +81998,7 @@ MonoBehaviour:
|
||||
reaction_id: 0
|
||||
damageType:
|
||||
force: {x: 0, y: 0, z: 0}
|
||||
ignoreAllHitEffects: 0
|
||||
minDamage:
|
||||
damageValue: 15
|
||||
staminaBlockCost: 5
|
||||
@@ -82013,6 +82014,7 @@ MonoBehaviour:
|
||||
reaction_id: 0
|
||||
damageType:
|
||||
force: {x: 0, y: 0, z: 0}
|
||||
ignoreAllHitEffects: 0
|
||||
maxDamage:
|
||||
damageValue: 15
|
||||
staminaBlockCost: 5
|
||||
@@ -82028,6 +82030,7 @@ MonoBehaviour:
|
||||
reaction_id: 0
|
||||
damageType:
|
||||
force: {x: 0, y: 0, z: 0}
|
||||
ignoreAllHitEffects: 0
|
||||
overrideDamageSender: {fileID: 0}
|
||||
hitBoxes:
|
||||
- {fileID: 9202663234700498133}
|
||||
@@ -104885,6 +104888,7 @@ MonoBehaviour:
|
||||
reaction_id: 0
|
||||
damageType:
|
||||
force: {x: 0, y: 0, z: 0}
|
||||
ignoreAllHitEffects: 0
|
||||
minDamage:
|
||||
damageValue: 15
|
||||
staminaBlockCost: 5
|
||||
@@ -104900,6 +104904,7 @@ MonoBehaviour:
|
||||
reaction_id: 0
|
||||
damageType:
|
||||
force: {x: 0, y: 0, z: 0}
|
||||
ignoreAllHitEffects: 0
|
||||
maxDamage:
|
||||
damageValue: 15
|
||||
staminaBlockCost: 5
|
||||
@@ -104915,6 +104920,7 @@ MonoBehaviour:
|
||||
reaction_id: 0
|
||||
damageType:
|
||||
force: {x: 0, y: 0, z: 0}
|
||||
ignoreAllHitEffects: 0
|
||||
overrideDamageSender: {fileID: 0}
|
||||
hitBoxes:
|
||||
- {fileID: 3157817243778252271}
|
||||
@@ -105773,6 +105779,7 @@ MonoBehaviour:
|
||||
reaction_id: 0
|
||||
damageType:
|
||||
force: {x: 0, y: 0, z: 0}
|
||||
ignoreAllHitEffects: 0
|
||||
hitProperties:
|
||||
hitDamageTags:
|
||||
- Enemy
|
||||
@@ -118356,6 +118363,7 @@ MonoBehaviour:
|
||||
reaction_id: 0
|
||||
damageType:
|
||||
force: {x: 0, y: 0, z: 0}
|
||||
ignoreAllHitEffects: 0
|
||||
minDamage:
|
||||
damageValue: 15
|
||||
staminaBlockCost: 5
|
||||
@@ -118371,6 +118379,7 @@ MonoBehaviour:
|
||||
reaction_id: 0
|
||||
damageType:
|
||||
force: {x: 0, y: 0, z: 0}
|
||||
ignoreAllHitEffects: 0
|
||||
maxDamage:
|
||||
damageValue: 15
|
||||
staminaBlockCost: 5
|
||||
@@ -118386,6 +118395,7 @@ MonoBehaviour:
|
||||
reaction_id: 0
|
||||
damageType:
|
||||
force: {x: 0, y: 0, z: 0}
|
||||
ignoreAllHitEffects: 0
|
||||
overrideDamageSender: {fileID: 0}
|
||||
hitBoxes:
|
||||
- {fileID: 3157817242016584094}
|
||||
@@ -135311,6 +135321,7 @@ MonoBehaviour:
|
||||
reaction_id: 0
|
||||
damageType:
|
||||
force: {x: 0, y: 0, z: 0}
|
||||
ignoreAllHitEffects: 0
|
||||
minDamage:
|
||||
damageValue: 15
|
||||
staminaBlockCost: 5
|
||||
@@ -135326,6 +135337,7 @@ MonoBehaviour:
|
||||
reaction_id: 0
|
||||
damageType:
|
||||
force: {x: 0, y: 0, z: 0}
|
||||
ignoreAllHitEffects: 0
|
||||
maxDamage:
|
||||
damageValue: 15
|
||||
staminaBlockCost: 5
|
||||
@@ -135341,6 +135353,7 @@ MonoBehaviour:
|
||||
reaction_id: 0
|
||||
damageType:
|
||||
force: {x: 0, y: 0, z: 0}
|
||||
ignoreAllHitEffects: 0
|
||||
overrideDamageSender: {fileID: 0}
|
||||
hitBoxes:
|
||||
- {fileID: 3157817244105814045}
|
||||
@@ -135487,6 +135500,7 @@ MonoBehaviour:
|
||||
reaction_id: 0
|
||||
damageType:
|
||||
force: {x: 0, y: 0, z: 0}
|
||||
ignoreAllHitEffects: 0
|
||||
overrideDamageSender: {fileID: 0}
|
||||
layerToCollide:
|
||||
serializedVersion: 2
|
||||
|
||||
@@ -854,6 +854,7 @@ MonoBehaviour:
|
||||
reaction_id: 0
|
||||
damageType:
|
||||
force: {x: 0, y: 0, z: 0}
|
||||
ignoreAllHitEffects: 0
|
||||
minDamage:
|
||||
damageValue: 15
|
||||
staminaBlockCost: 5
|
||||
@@ -869,6 +870,7 @@ MonoBehaviour:
|
||||
reaction_id: 0
|
||||
damageType:
|
||||
force: {x: 0, y: 0, z: 0}
|
||||
ignoreAllHitEffects: 0
|
||||
maxDamage:
|
||||
damageValue: 15
|
||||
staminaBlockCost: 5
|
||||
@@ -884,6 +886,7 @@ MonoBehaviour:
|
||||
reaction_id: 0
|
||||
damageType:
|
||||
force: {x: 0, y: 0, z: 0}
|
||||
ignoreAllHitEffects: 0
|
||||
overrideDamageSender: {fileID: 0}
|
||||
hitBoxes:
|
||||
- {fileID: 4367795707781829252}
|
||||
@@ -3615,6 +3618,7 @@ MonoBehaviour:
|
||||
reaction_id: 0
|
||||
damageType:
|
||||
force: {x: 0, y: 0, z: 0}
|
||||
ignoreAllHitEffects: 0
|
||||
minDamage:
|
||||
damageValue: 15
|
||||
staminaBlockCost: 5
|
||||
@@ -3630,6 +3634,7 @@ MonoBehaviour:
|
||||
reaction_id: 0
|
||||
damageType:
|
||||
force: {x: 0, y: 0, z: 0}
|
||||
ignoreAllHitEffects: 0
|
||||
maxDamage:
|
||||
damageValue: 15
|
||||
staminaBlockCost: 5
|
||||
@@ -3645,6 +3650,7 @@ MonoBehaviour:
|
||||
reaction_id: 0
|
||||
damageType:
|
||||
force: {x: 0, y: 0, z: 0}
|
||||
ignoreAllHitEffects: 0
|
||||
overrideDamageSender: {fileID: 0}
|
||||
hitBoxes:
|
||||
- {fileID: 4367795705692615431}
|
||||
@@ -6820,6 +6826,7 @@ MonoBehaviour:
|
||||
reaction_id: 0
|
||||
damageType:
|
||||
force: {x: 0, y: 0, z: 0}
|
||||
ignoreAllHitEffects: 0
|
||||
minDamage:
|
||||
damageValue: 15
|
||||
staminaBlockCost: 5
|
||||
@@ -6835,6 +6842,7 @@ MonoBehaviour:
|
||||
reaction_id: 0
|
||||
damageType:
|
||||
force: {x: 0, y: 0, z: 0}
|
||||
ignoreAllHitEffects: 0
|
||||
maxDamage:
|
||||
damageValue: 15
|
||||
staminaBlockCost: 5
|
||||
@@ -6850,6 +6858,7 @@ MonoBehaviour:
|
||||
reaction_id: 0
|
||||
damageType:
|
||||
force: {x: 0, y: 0, z: 0}
|
||||
ignoreAllHitEffects: 0
|
||||
overrideDamageSender: {fileID: 0}
|
||||
hitBoxes:
|
||||
- {fileID: 4367795706479253541}
|
||||
@@ -8693,6 +8702,7 @@ MonoBehaviour:
|
||||
reaction_id: 0
|
||||
damageType:
|
||||
force: {x: 0, y: 0, z: 0}
|
||||
ignoreAllHitEffects: 0
|
||||
minDamage:
|
||||
damageValue: 15
|
||||
staminaBlockCost: 5
|
||||
@@ -8708,6 +8718,7 @@ MonoBehaviour:
|
||||
reaction_id: 0
|
||||
damageType:
|
||||
force: {x: 0, y: 0, z: 0}
|
||||
ignoreAllHitEffects: 0
|
||||
maxDamage:
|
||||
damageValue: 15
|
||||
staminaBlockCost: 5
|
||||
@@ -8723,6 +8734,7 @@ MonoBehaviour:
|
||||
reaction_id: 0
|
||||
damageType:
|
||||
force: {x: 0, y: 0, z: 0}
|
||||
ignoreAllHitEffects: 0
|
||||
overrideDamageSender: {fileID: 0}
|
||||
hitBoxes:
|
||||
- {fileID: 4367795706020118261}
|
||||
|
||||
@@ -203,7 +203,7 @@ Transform:
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0.3901362, y: -0.39884356, z: 0.31246474, w: 0.7688195}
|
||||
m_LocalPosition: {x: 13.93, y: 40.21, z: -39.36}
|
||||
m_LocalScale: {x: 0.110949144, y: 0.0735072, z: 0.110949166}
|
||||
m_LocalScale: {x: 0.11094914, y: 0.073507205, z: 0.11094917}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 8504127528854653553}
|
||||
@@ -236,7 +236,7 @@ MonoBehaviour:
|
||||
- {fileID: 8606076445728158576}
|
||||
m_effect: {fileID: 0}
|
||||
m_burnoutTime: 3
|
||||
m_destroyTime: 5
|
||||
m_destroyTime: 3
|
||||
m_delay: 1
|
||||
m_lightToAnimate: {fileID: 0}
|
||||
--- !u!65 &8635202493545848867
|
||||
@@ -258,8 +258,8 @@ BoxCollider:
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 17.875721, y: 32.058144, z: 14.945146}
|
||||
m_Center: {x: 2.132795, y: -0.43375033, z: 0.4792527}
|
||||
m_Size: {x: 21.09685, y: 30.436941, z: 19.004988}
|
||||
m_Center: {x: 3.743364, y: -1.2443696, z: 2.5091968}
|
||||
--- !u!114 &1419620463414589321
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -377,6 +377,18 @@ MonoBehaviour:
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
- m_Target: {fileID: 8635202493545848867}
|
||||
m_TargetAssemblyTypeName: UnityEngine.Collider, UnityEngine
|
||||
m_MethodName: set_enabled
|
||||
m_Mode: 6
|
||||
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
|
||||
onChangeHealth:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
|
||||
1652
Assets/Prefabs/Gameplay/PlantableTrees/Good_Soil_Tree.prefab
Normal file
1652
Assets/Prefabs/Gameplay/PlantableTrees/Good_Soil_Tree.prefab
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4fa3d057c4946554cb3c68331d5c7e06
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -5470,7 +5470,7 @@ GameObject:
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
m_IsActive: 0
|
||||
--- !u!4 &7019251980953234364
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@@ -25134,7 +25134,7 @@ PrefabInstance:
|
||||
- target: {fileID: 3053764927411709791, guid: 38ca8b4bc26702b40a70a342950990ee,
|
||||
type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3363011155242089996, guid: 38ca8b4bc26702b40a70a342950990ee,
|
||||
type: 3}
|
||||
@@ -26680,7 +26680,7 @@ PrefabInstance:
|
||||
- target: {fileID: 6801932090984752054, guid: 38ca8b4bc26702b40a70a342950990ee,
|
||||
type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 1
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6873079659947345108, guid: 38ca8b4bc26702b40a70a342950990ee,
|
||||
type: 3}
|
||||
@@ -26956,7 +26956,7 @@ PrefabInstance:
|
||||
- target: {fileID: 8701437937550647419, guid: 38ca8b4bc26702b40a70a342950990ee,
|
||||
type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8913891428701285121, guid: 38ca8b4bc26702b40a70a342950990ee,
|
||||
type: 3}
|
||||
|
||||
@@ -20,6 +20,65 @@ MonoBehaviour:
|
||||
m_textTable: {fileID: 0}
|
||||
m_textTableFieldID: 0
|
||||
m_headingLevel: 1
|
||||
--- !u!114 &-7851998306034125330
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c47e1bb9cdd9a474c8d3f5d555d7533a, type: 3}
|
||||
m_Name: HeadingTextQuestContent
|
||||
m_EditorClassIdentifier:
|
||||
m_contentID: -1
|
||||
m_useQuestTitle: 0
|
||||
m_headingText:
|
||||
m_text: Explore the ruins
|
||||
m_stringAsset: {fileID: 0}
|
||||
m_textTable: {fileID: 0}
|
||||
m_textTableFieldID: 0
|
||||
m_headingLevel: 1
|
||||
--- !u!114 &-4049380265876240392
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 5682394e55a192147a020b9edf624e51, type: 3}
|
||||
m_Name: MessageQuestCondition
|
||||
m_EditorClassIdentifier:
|
||||
m_alreadyTrue: 0
|
||||
m_senderSpecifier: 0
|
||||
m_senderID:
|
||||
m_text:
|
||||
m_stringAsset: {fileID: 0}
|
||||
m_textTable: {fileID: 0}
|
||||
m_textTableFieldID: 0
|
||||
m_targetSpecifier: 0
|
||||
m_targetID:
|
||||
m_text:
|
||||
m_stringAsset: {fileID: 0}
|
||||
m_textTable: {fileID: 0}
|
||||
m_textTableFieldID: 0
|
||||
m_message:
|
||||
m_text: Explore
|
||||
m_stringAsset: {fileID: 0}
|
||||
m_textTable: {fileID: 0}
|
||||
m_textTableFieldID: 0
|
||||
m_parameter:
|
||||
m_text: Ruins
|
||||
m_stringAsset: {fileID: 0}
|
||||
m_textTable: {fileID: 0}
|
||||
m_textTableFieldID: 0
|
||||
m_value:
|
||||
m_valueType: 0
|
||||
m_intValue: 0
|
||||
m_stringValue:
|
||||
--- !u!114 &-3765981198424978030
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
@@ -55,6 +114,45 @@ MonoBehaviour:
|
||||
m_contentList:
|
||||
- {fileID: 176885676704061995}
|
||||
m_contentListSerializationProxy: []
|
||||
--- !u!114 &-1154049343836426198
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 5682394e55a192147a020b9edf624e51, type: 3}
|
||||
m_Name: MessageQuestCondition
|
||||
m_EditorClassIdentifier:
|
||||
m_alreadyTrue: 0
|
||||
m_senderSpecifier: 0
|
||||
m_senderID:
|
||||
m_text:
|
||||
m_stringAsset: {fileID: 0}
|
||||
m_textTable: {fileID: 0}
|
||||
m_textTableFieldID: 0
|
||||
m_targetSpecifier: 0
|
||||
m_targetID:
|
||||
m_text:
|
||||
m_stringAsset: {fileID: 0}
|
||||
m_textTable: {fileID: 0}
|
||||
m_textTableFieldID: 0
|
||||
m_message:
|
||||
m_text: Ruins
|
||||
m_stringAsset: {fileID: 0}
|
||||
m_textTable: {fileID: 0}
|
||||
m_textTableFieldID: 0
|
||||
m_parameter:
|
||||
m_text: Explored
|
||||
m_stringAsset: {fileID: 0}
|
||||
m_textTable: {fileID: 0}
|
||||
m_textTableFieldID: 0
|
||||
m_value:
|
||||
m_valueType: 0
|
||||
m_intValue: 0
|
||||
m_stringValue:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -329,11 +427,12 @@ MonoBehaviour:
|
||||
- m_contentList: []
|
||||
- m_contentList: []
|
||||
m_conditionSet:
|
||||
m_conditionList: []
|
||||
m_conditionList:
|
||||
- {fileID: -4049380265876240392}
|
||||
m_conditionCountMode: 1
|
||||
m_minConditionCount: 0
|
||||
m_numTrueConditions: 0
|
||||
m_childIndexList:
|
||||
m_childIndexList: 05000000
|
||||
m_canvasRect:
|
||||
serializedVersion: 2
|
||||
x: 218
|
||||
@@ -387,6 +486,101 @@ MonoBehaviour:
|
||||
y: 228
|
||||
width: 120
|
||||
height: 48
|
||||
- m_id:
|
||||
m_text: ExploreRuinedTown
|
||||
m_stringAsset: {fileID: 0}
|
||||
m_textTable: {fileID: 0}
|
||||
m_textTableFieldID: 0
|
||||
m_internalName:
|
||||
m_text: ExploreRuins
|
||||
m_stringAsset: {fileID: 0}
|
||||
m_textTable: {fileID: 0}
|
||||
m_textTableFieldID: 0
|
||||
m_nodeType: 4
|
||||
m_isOptional: 0
|
||||
m_state: 0
|
||||
m_speaker:
|
||||
m_text:
|
||||
m_stringAsset: {fileID: 0}
|
||||
m_textTable: {fileID: 0}
|
||||
m_textTableFieldID: 0
|
||||
m_stateInfoList:
|
||||
- m_actionList: []
|
||||
m_categorizedContentList:
|
||||
- m_contentList: []
|
||||
- m_contentList: []
|
||||
- m_contentList: []
|
||||
- m_actionList:
|
||||
- {fileID: 2879865022517391138}
|
||||
m_categorizedContentList:
|
||||
- m_contentList: []
|
||||
- m_contentList: []
|
||||
- m_contentList:
|
||||
- {fileID: -7851998306034125330}
|
||||
- m_actionList: []
|
||||
m_categorizedContentList:
|
||||
- m_contentList: []
|
||||
- m_contentList: []
|
||||
- m_contentList: []
|
||||
m_conditionSet:
|
||||
m_conditionList:
|
||||
- {fileID: -1154049343836426198}
|
||||
m_conditionCountMode: 1
|
||||
m_minConditionCount: 0
|
||||
m_numTrueConditions: 0
|
||||
m_childIndexList: 06000000
|
||||
m_canvasRect:
|
||||
serializedVersion: 2
|
||||
x: 220
|
||||
y: 585
|
||||
width: 120
|
||||
height: 48
|
||||
- m_id:
|
||||
m_text: Success
|
||||
m_stringAsset: {fileID: 0}
|
||||
m_textTable: {fileID: 0}
|
||||
m_textTableFieldID: 0
|
||||
m_internalName:
|
||||
m_text:
|
||||
m_stringAsset: {fileID: 0}
|
||||
m_textTable: {fileID: 0}
|
||||
m_textTableFieldID: 0
|
||||
m_nodeType: 1
|
||||
m_isOptional: 0
|
||||
m_state: 0
|
||||
m_speaker:
|
||||
m_text:
|
||||
m_stringAsset: {fileID: 0}
|
||||
m_textTable: {fileID: 0}
|
||||
m_textTableFieldID: 0
|
||||
m_stateInfoList:
|
||||
- m_actionList: []
|
||||
m_categorizedContentList:
|
||||
- m_contentList: []
|
||||
- m_contentList: []
|
||||
- m_contentList: []
|
||||
- m_actionList: []
|
||||
m_categorizedContentList:
|
||||
- m_contentList: []
|
||||
- m_contentList: []
|
||||
- m_contentList: []
|
||||
- m_actionList: []
|
||||
m_categorizedContentList:
|
||||
- m_contentList: []
|
||||
- m_contentList: []
|
||||
- m_contentList: []
|
||||
m_conditionSet:
|
||||
m_conditionList: []
|
||||
m_conditionCountMode: 1
|
||||
m_minConditionCount: 0
|
||||
m_numTrueConditions: 0
|
||||
m_childIndexList:
|
||||
m_canvasRect:
|
||||
serializedVersion: 2
|
||||
x: 220
|
||||
y: 653
|
||||
width: 120
|
||||
height: 35
|
||||
m_goalEntityTypeName:
|
||||
m_nextContentID: 0
|
||||
--- !u!114 &176885676704061995
|
||||
@@ -444,6 +638,21 @@ MonoBehaviour:
|
||||
m_contentList:
|
||||
- {fileID: 1244259193174973182}
|
||||
m_contentListSerializationProxy: []
|
||||
--- !u!114 &2879865022517391138
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 6b99cc2a156c22e46b4fb74b06a4d1e8, type: 3}
|
||||
m_Name: AlertQuestAction
|
||||
m_EditorClassIdentifier:
|
||||
m_contentList:
|
||||
- {fileID: 7369075533383603033}
|
||||
m_contentListSerializationProxy: []
|
||||
--- !u!114 &4478937982804482560
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
@@ -518,6 +727,26 @@ MonoBehaviour:
|
||||
m_valueType: 0
|
||||
m_intValue: 0
|
||||
m_stringValue:
|
||||
--- !u!114 &7369075533383603033
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c47e1bb9cdd9a474c8d3f5d555d7533a, type: 3}
|
||||
m_Name: HeadingTextQuestContent
|
||||
m_EditorClassIdentifier:
|
||||
m_contentID: -1
|
||||
m_useQuestTitle: 0
|
||||
m_headingText:
|
||||
m_text: Explore the ruins
|
||||
m_stringAsset: {fileID: 0}
|
||||
m_textTable: {fileID: 0}
|
||||
m_textTableFieldID: 0
|
||||
m_headingLevel: 1
|
||||
--- !u!114 &8205021404887306477
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,41 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 56338a369913a9249a5640f1f6c6139f
|
||||
AudioImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 8
|
||||
defaultSettings:
|
||||
serializedVersion: 2
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 0
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
preloadAudioData: 0
|
||||
platformSettingOverrides:
|
||||
4:
|
||||
serializedVersion: 2
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 0
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
preloadAudioData: 0
|
||||
7:
|
||||
serializedVersion: 2
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 1
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
preloadAudioData: 0
|
||||
forceToMono: 0
|
||||
normalize: 1
|
||||
loadInBackground: 0
|
||||
ambisonic: 0
|
||||
3D: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Resources/Dialogues/VO/CH02/CH02_vo_lever_wanderer_01.ogg
Normal file
BIN
Assets/Resources/Dialogues/VO/CH02/CH02_vo_lever_wanderer_01.ogg
Normal file
Binary file not shown.
@@ -0,0 +1,41 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7409559a3b21dcb4ba12d3618ce34285
|
||||
AudioImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 8
|
||||
defaultSettings:
|
||||
serializedVersion: 2
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 0
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
preloadAudioData: 0
|
||||
platformSettingOverrides:
|
||||
4:
|
||||
serializedVersion: 2
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 0
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
preloadAudioData: 0
|
||||
7:
|
||||
serializedVersion: 2
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 1
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
preloadAudioData: 0
|
||||
forceToMono: 0
|
||||
normalize: 1
|
||||
loadInBackground: 0
|
||||
ambisonic: 0
|
||||
3D: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Resources/Dialogues/VO/CH02/CH02_vo_lever_wanderer_02.ogg
Normal file
BIN
Assets/Resources/Dialogues/VO/CH02/CH02_vo_lever_wanderer_02.ogg
Normal file
Binary file not shown.
@@ -0,0 +1,41 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f6ef55b4f02ac1a4aa9f309aff8c8303
|
||||
AudioImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 8
|
||||
defaultSettings:
|
||||
serializedVersion: 2
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 0
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
preloadAudioData: 0
|
||||
platformSettingOverrides:
|
||||
4:
|
||||
serializedVersion: 2
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 0
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
preloadAudioData: 0
|
||||
7:
|
||||
serializedVersion: 2
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 1
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
preloadAudioData: 0
|
||||
forceToMono: 0
|
||||
normalize: 1
|
||||
loadInBackground: 0
|
||||
ambisonic: 0
|
||||
3D: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -864,6 +864,52 @@ namespace Beyond
|
||||
ThirdPersonController._rigidbody.MovePosition(t.position);
|
||||
ThirdPersonController._rigidbody.MoveRotation(t.rotation);
|
||||
}
|
||||
|
||||
public void PlaySingleSound(AudioClip clipToPlay, bool destroyAfterPlaying = true)
|
||||
{
|
||||
// Opcjonalne opóŸnienie na starcie poziomu, aby unikn¹æ "spamowania" dŸwiêkami
|
||||
if (Time.timeSinceLevelLoad < 0.5f && clipToPlay != null)
|
||||
{
|
||||
// Mo¿esz chcieæ to odkomentowaæ, jeœli dŸwiêki na starcie s¹ problemem
|
||||
// return;
|
||||
}
|
||||
|
||||
if (this.audioSource == null) // this.audioSource to pole GameObject (prefab) w Player.cs
|
||||
{
|
||||
Debug.LogWarning("Player's 'audioSource' (GameObject prefab) is not assigned in Inspector. Cannot play sound: " + (clipToPlay ? clipToPlay.name : "Unknown clip"));
|
||||
return;
|
||||
}
|
||||
if (clipToPlay == null)
|
||||
{
|
||||
Debug.LogWarning("Attempted to play a null AudioClip.");
|
||||
return;
|
||||
}
|
||||
|
||||
// Instancjonowanie prefabu dŸwiêkowego
|
||||
// Upewnij siê, ¿e prefab 'audioSource' ma komponent AudioSource
|
||||
GameObject audioObjectInstance = Instantiate(this.audioSource, transform.position, transform.rotation);
|
||||
AudioSource sourceComponent = audioObjectInstance.GetComponent<AudioSource>();
|
||||
|
||||
if (sourceComponent != null)
|
||||
{
|
||||
// PlayOneShot jest dobre dla efektów, nie przerywa innych dŸwiêków na tym samym source,
|
||||
// jeœli s¹ one odtwarzane przez .Play() i nie u¿ywaj¹ tego samego kana³u.
|
||||
sourceComponent.PlayOneShot(clipToPlay);
|
||||
|
||||
if (destroyAfterPlaying)
|
||||
{
|
||||
// Niszczymy obiekt GameObject zawieraj¹cy AudioSource po zakoñczeniu odtwarzania klipu.
|
||||
// Dodajemy ma³y bufor czasowy, aby upewniæ siê, ¿e dŸwiêk zd¹¿y siê odtworzyæ w ca³oœci.
|
||||
Destroy(audioObjectInstance, clipToPlay.length + 0.1f);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogWarning("The instantiated 'audioSource' prefab (from Player.cs) does not have an AudioSource component. Destroying instance.");
|
||||
Destroy(audioObjectInstance); // Posprz¹taj, jeœli coœ posz³o nie tak
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[System.Serializable]
|
||||
|
||||
193
Assets/Scripts/Characters/PoisonZone.cs
Normal file
193
Assets/Scripts/Characters/PoisonZone.cs
Normal file
@@ -0,0 +1,193 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering; // Potrzebne dla Volume
|
||||
using Beyond; // Dla dostêpu do Twojej klasy Player
|
||||
using Invector; // Dla vDamage
|
||||
|
||||
public class PoisonZone : MonoBehaviour
|
||||
{
|
||||
[Header("Damage Settings")]
|
||||
[Tooltip("Amount of damage dealt at each interval.")]
|
||||
public int damageAmount = 5;
|
||||
[Tooltip("Time in seconds between each damage tick.")]
|
||||
public float damageInterval = 1.0f;
|
||||
|
||||
[Header("Volume Animation Settings")]
|
||||
[Tooltip("Reference to the Volume component to animate.")]
|
||||
public Volume poisonVolume;
|
||||
|
||||
[Tooltip("Animation curve for ONE CYCLE of the looping Volume weight. X-axis (Time) from 0 to 1. Y-axis (Value) is the weight intensity (e.g., 0 to 1, where 1 is full effect defined by the curve values).")]
|
||||
public AnimationCurve loopingVolumeWeightCurve = new AnimationCurve(
|
||||
new Keyframe(0, 0),
|
||||
new Keyframe(0.5f, 0.8f),
|
||||
new Keyframe(1, 0)
|
||||
);
|
||||
|
||||
[Tooltip("Duration of one full cycle of the looping animation, in seconds. Must be greater than 0.")]
|
||||
public float loopCycleDuration = 2.0f;
|
||||
|
||||
[Tooltip("Duration of the fade-in/fade-out effect for the looping animation, in seconds. Set to 0 for instant on/off of the loop.")]
|
||||
public float volumeFadeDuration = 1.0f;
|
||||
|
||||
|
||||
[Header("Sound Settings")]
|
||||
[Tooltip("Coughing sound effect to play.")]
|
||||
public AudioClip coughSound;
|
||||
[Tooltip("Interval in seconds for repeating the cough sound while player is in the zone. Set to 0 for no repeat (only on enter).")]
|
||||
public float coughInterval = 4.0f;
|
||||
|
||||
private Player currentPlayerInZone;
|
||||
private float timeSinceLastDamage = 0f;
|
||||
private float timeSinceLastCough = 0f;
|
||||
private bool playerCurrentlyInZone = false;
|
||||
|
||||
private float currentLoopProgress = 0f;
|
||||
private float currentFadeProgress = 0f;
|
||||
|
||||
void Start()
|
||||
{
|
||||
Collider col = GetComponent<Collider>();
|
||||
if (col == null || !col.isTrigger)
|
||||
{
|
||||
Debug.LogWarning($"PoisonZone: Collider not found or not set to 'Is Trigger' on GameObject: {gameObject.name}", this);
|
||||
}
|
||||
|
||||
if (poisonVolume == null)
|
||||
{
|
||||
Debug.LogWarning($"PoisonZone: No Volume assigned in Inspector. Post-processing effects will not be animated for {gameObject.name}", this);
|
||||
}
|
||||
else
|
||||
{
|
||||
poisonVolume.weight = 0f;
|
||||
poisonVolume.enabled = false;
|
||||
}
|
||||
|
||||
if (loopCycleDuration <= 0.001f)
|
||||
{
|
||||
Debug.LogWarning("PoisonZone: Loop Cycle Duration should be greater than 0 for looping animation. Setting to 1s.", this);
|
||||
loopCycleDuration = 1f;
|
||||
}
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (poisonVolume != null)
|
||||
{
|
||||
float targetFadeProgress = playerCurrentlyInZone ? 1.0f : 0.0f;
|
||||
if (volumeFadeDuration > 0.001f)
|
||||
{
|
||||
float fadeStep = (1.0f / volumeFadeDuration) * Time.deltaTime;
|
||||
currentFadeProgress = Mathf.MoveTowards(currentFadeProgress, targetFadeProgress, fadeStep);
|
||||
}
|
||||
else
|
||||
{
|
||||
currentFadeProgress = targetFadeProgress;
|
||||
}
|
||||
|
||||
if (playerCurrentlyInZone || currentFadeProgress > 0.001f)
|
||||
{
|
||||
currentLoopProgress += Time.deltaTime / loopCycleDuration;
|
||||
currentLoopProgress = currentLoopProgress % 1.0f;
|
||||
}
|
||||
|
||||
float loopedWeightValue = loopingVolumeWeightCurve.Evaluate(currentLoopProgress);
|
||||
poisonVolume.weight = loopedWeightValue * currentFadeProgress;
|
||||
|
||||
bool shouldBeEnabled;
|
||||
if (currentFadeProgress > 0.001f)
|
||||
{
|
||||
shouldBeEnabled = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
shouldBeEnabled = false;
|
||||
}
|
||||
|
||||
if (poisonVolume.enabled != shouldBeEnabled)
|
||||
{
|
||||
poisonVolume.enabled = shouldBeEnabled;
|
||||
}
|
||||
}
|
||||
|
||||
if (playerCurrentlyInZone && currentPlayerInZone != null)
|
||||
{
|
||||
timeSinceLastDamage += Time.deltaTime;
|
||||
if (timeSinceLastDamage >= damageInterval)
|
||||
{
|
||||
ApplyPoisonDamage();
|
||||
timeSinceLastDamage = 0f;
|
||||
}
|
||||
|
||||
if (coughSound != null && coughInterval > 0)
|
||||
{
|
||||
timeSinceLastCough += Time.deltaTime;
|
||||
if (timeSinceLastCough >= coughInterval)
|
||||
{
|
||||
PlayCoughSound();
|
||||
timeSinceLastCough = 0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void OnTriggerEnter(Collider other)
|
||||
{
|
||||
Player enteredPlayer = other.GetComponent<Player>();
|
||||
if (enteredPlayer != null)
|
||||
{
|
||||
if (currentPlayerInZone != enteredPlayer || !playerCurrentlyInZone)
|
||||
{
|
||||
if (currentPlayerInZone != enteredPlayer)
|
||||
{
|
||||
currentPlayerInZone = enteredPlayer;
|
||||
}
|
||||
|
||||
playerCurrentlyInZone = true;
|
||||
timeSinceLastDamage = 0f;
|
||||
timeSinceLastCough = 0f;
|
||||
currentLoopProgress = 0f;
|
||||
|
||||
if (coughSound != null)
|
||||
{
|
||||
PlayCoughSound();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void OnTriggerExit(Collider other)
|
||||
{
|
||||
Player exitedPlayer = other.GetComponent<Player>();
|
||||
if (exitedPlayer != null && exitedPlayer == currentPlayerInZone && playerCurrentlyInZone)
|
||||
{
|
||||
playerCurrentlyInZone = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void ApplyPoisonDamage()
|
||||
{
|
||||
if (currentPlayerInZone != null && currentPlayerInZone.ThirdPersonController != null)
|
||||
{
|
||||
var healthController = currentPlayerInZone.ThirdPersonController;
|
||||
if (healthController != null && !healthController.isDead)
|
||||
{
|
||||
// >>> TUTAJ ZMIANA <<<
|
||||
// U¿ywamy konstruktora vDamage(int damageAmount, bool ignoreReactionAndAllEffects)
|
||||
// Przekazujemy 'true', aby zasygnalizowaæ, ¿e chcemy pomin¹æ wszystkie efekty trafienia.
|
||||
vDamage damageInstance = new vDamage(damageAmount, true);
|
||||
|
||||
// Opcjonalnie: ustaw typ obra¿eñ dla dodatkowej logiki lub debugowania
|
||||
damageInstance.damageType = "Poison";
|
||||
|
||||
healthController.TakeDamage(damageInstance);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void PlayCoughSound()
|
||||
{
|
||||
if (currentPlayerInZone != null && coughSound != null)
|
||||
{
|
||||
currentPlayerInZone.PlaySingleSound(coughSound, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/Characters/PoisonZone.cs.meta
Normal file
2
Assets/Scripts/Characters/PoisonZone.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 42b6d889d50a4a84f9b8f341d61afdc6
|
||||
71
Assets/Scripts/VolumeWeightAnimator.cs
Normal file
71
Assets/Scripts/VolumeWeightAnimator.cs
Normal file
@@ -0,0 +1,71 @@
|
||||
using System.Collections;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
|
||||
namespace UnityEngine.Rendering
|
||||
{
|
||||
[CurrentPipelineHelpURL("Volumes")]
|
||||
[ExecuteAlways]
|
||||
[AddComponentMenu("Miscellaneous/Volume Weight Animator")]
|
||||
public class VolumeWeightAnimator : MonoBehaviour
|
||||
{
|
||||
[SerializeField]
|
||||
private Volume m_Volume;
|
||||
|
||||
[SerializeField]
|
||||
private float m_AnimationDuration = 5.0f;
|
||||
|
||||
[SerializeField]
|
||||
private AnimationCurve m_WeightCurve = AnimationCurve.Linear(0, 0, 1, 1);
|
||||
|
||||
[SerializeField]
|
||||
private float m_Speed = 1.0f;
|
||||
|
||||
private bool wasEnabled = false;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
if (m_Volume != null)
|
||||
{
|
||||
m_Volume.weight = 0;
|
||||
wasEnabled = m_Volume.enabled;
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogWarning("Volume is not assigned.");
|
||||
}
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (m_Volume != null)
|
||||
{
|
||||
if (m_Volume.enabled && !wasEnabled)
|
||||
{
|
||||
// Volume zosta³ w³¹czony, uruchamiamy animacjê
|
||||
StartCoroutine(AnimateWeight());
|
||||
}
|
||||
wasEnabled = m_Volume.enabled;
|
||||
}
|
||||
}
|
||||
|
||||
private IEnumerator AnimateWeight()
|
||||
{
|
||||
float elapsedTime = 0f;
|
||||
m_Volume.weight = 1; // Ustawienie wagi na 1 przy w³¹czaniu Volume
|
||||
|
||||
while (elapsedTime < m_AnimationDuration)
|
||||
{
|
||||
float t = elapsedTime / m_AnimationDuration;
|
||||
float curveValue = m_WeightCurve.Evaluate(t);
|
||||
m_Volume.weight = curveValue; // U¿ywamy bezpoœrednio wartoœci z krzywej
|
||||
|
||||
elapsedTime += Time.deltaTime * m_Speed;
|
||||
yield return null;
|
||||
}
|
||||
|
||||
// Po zakoñczeniu animacji wy³¹czamy Volume
|
||||
m_Volume.enabled = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/VolumeWeightAnimator.cs.meta
Normal file
2
Assets/Scripts/VolumeWeightAnimator.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a475c053fa2b9dd47b002feb7bbf32a9
|
||||
@@ -9,7 +9,14 @@ Material:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Poison_foot
|
||||
m_Shader: {fileID: 4800000, guid: 4775e5a8f344d6348adf934e722da85d, type: 3}
|
||||
m_ValidKeywords: []
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- BlendAlpha
|
||||
- Clip_OFF
|
||||
- FrameBlend_OFF
|
||||
- FresnelFade_OFF
|
||||
- VertLight_OFF
|
||||
m_InvalidKeywords:
|
||||
- SoftParticles_OFF
|
||||
m_LightmapFlags: 1
|
||||
@@ -18,6 +25,7 @@ Material:
|
||||
m_CustomRenderQueue: 2450
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
@@ -86,3 +94,4 @@ Material:
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _TintColor: {r: 0.135141, g: 1.7207954, b: 0, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
|
||||
@@ -9,6 +9,8 @@ Material:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Poison_splash
|
||||
m_Shader: {fileID: 4800000, guid: 4775e5a8f344d6348adf934e722da85d, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- BlendAlpha
|
||||
- Clip_OFF
|
||||
@@ -25,6 +27,7 @@ Material:
|
||||
disabledShaderPasses:
|
||||
- DepthOnly
|
||||
- SHADOWCASTER
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
@@ -127,3 +130,4 @@ Material:
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
- _TintColor: {r: 0.16041078, g: 1.319508, b: 0, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
|
||||
@@ -1,75 +1,69 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq.Expressions;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
using UnityEngine.Events; // Nadal potrzebne dla UnityEvent ogólnego użytku
|
||||
|
||||
namespace Invector
|
||||
{
|
||||
// Prawdopodobnie te typy są zdefiniowane gdzieś globalnie w namespace Invector
|
||||
// lub w plikach interfejsów. Jeśli nie, trzeba by je tu zdefiniować,
|
||||
// ale zakładam, że kompilator je znajdzie, skoro vDamageReceiver ich używa.
|
||||
// [System.Serializable] public class OnReceiveDamage : UnityEvent<vDamage> { } // Jeśli potrzebna definicja
|
||||
// [System.Serializable] public class OnDead : UnityEvent<GameObject> { } // Jeśli potrzebna definicja
|
||||
|
||||
[vClassHeader("HealthController", iconName = "HealthControllerIcon")]
|
||||
public class vHealthController : vMonoBehaviour, vIHealthController
|
||||
public class vHealthController : vMonoBehaviour, vIHealthController // Upewnij się, że to jest poprawny interfejs
|
||||
{
|
||||
#region Variables
|
||||
|
||||
[vEditorToolbar("Health", order = 0)]
|
||||
[SerializeField] [vReadOnly] protected bool _isDead;
|
||||
[vBarDisplay("maxHealth")] [SerializeField] protected float _currentHealth;
|
||||
[SerializeField][vReadOnly] protected bool _isDead;
|
||||
[vBarDisplay("maxHealth")][SerializeField] protected float _currentHealth;
|
||||
public bool isImmortal = false;
|
||||
[vHelpBox("If you want to start with different value, uncheck this and make sure that the current health has a value greater zero")]
|
||||
public bool fillHealthOnStart = true;
|
||||
public int maxHealth = 100;
|
||||
public int MaxHealth
|
||||
{
|
||||
get
|
||||
{
|
||||
return maxHealth;
|
||||
}
|
||||
protected set
|
||||
{
|
||||
maxHealth = value;
|
||||
}
|
||||
get { return maxHealth; }
|
||||
protected set { maxHealth = value; }
|
||||
}
|
||||
public float currentHealth
|
||||
{
|
||||
get
|
||||
{
|
||||
return _currentHealth;
|
||||
}
|
||||
get { return _currentHealth; }
|
||||
protected set
|
||||
{
|
||||
if (_currentHealth != value)
|
||||
{
|
||||
_currentHealth = value;
|
||||
onChangeHealth.Invoke(_currentHealth);
|
||||
}
|
||||
|
||||
if (!_isDead && _currentHealth <= 0)
|
||||
{
|
||||
//_isDead = true;
|
||||
isDead = true;
|
||||
onDead.Invoke(gameObject);
|
||||
}
|
||||
else if (isDead && _currentHealth > 0)
|
||||
{
|
||||
isDead = false;
|
||||
if (onChangeHealth != null) onChangeHealth.Invoke(_currentHealth);
|
||||
}
|
||||
if (!_isDead && _currentHealth <= 0) { isDead = true; }
|
||||
else if (isDead && _currentHealth > 0) { isDead = false; }
|
||||
}
|
||||
}
|
||||
public virtual bool isDead
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!_isDead && currentHealth <= 0)
|
||||
if (!_isDead && _currentHealth <= 0)
|
||||
{
|
||||
_isDead = true;
|
||||
onDead.Invoke(gameObject);
|
||||
if (_onDead != null) _onDead.Invoke(gameObject);
|
||||
}
|
||||
return _isDead;
|
||||
}
|
||||
set
|
||||
{
|
||||
_isDead = value;
|
||||
if (_isDead != value)
|
||||
{
|
||||
_isDead = value;
|
||||
if (_isDead)
|
||||
{
|
||||
if (_onDead != null) _onDead.Invoke(gameObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
public float healthRecovery = 0f;
|
||||
@@ -78,38 +72,46 @@ namespace Invector
|
||||
public float currentHealthRecoveryDelay;
|
||||
[vEditorToolbar("Events", order = 100)]
|
||||
public List<CheckHealthEvent> checkHealthEvents = new List<CheckHealthEvent>();
|
||||
|
||||
// Używamy typów zdarzeń zdefiniowanych przez Invector (OnReceiveDamage, OnDead)
|
||||
[SerializeField] protected OnReceiveDamage _onStartReceiveDamage = new OnReceiveDamage();
|
||||
[SerializeField] protected OnReceiveDamage _onReceiveDamage = new OnReceiveDamage();
|
||||
[SerializeField] protected OnDead _onDead = new OnDead();
|
||||
public ValueChangedEvent onChangeHealth;
|
||||
[SerializeField] protected OnDead _onDead = new OnDead(); // Zakładając, że typ OnDead istnieje
|
||||
|
||||
[System.Serializable]
|
||||
public class ValueChangedEvent : UnityEvent<float> { }
|
||||
public ValueChangedEvent onChangeHealth = new ValueChangedEvent();
|
||||
public UnityEvent onResetHealth = new UnityEvent(); // Standardowy UnityEvent
|
||||
|
||||
public OnReceiveDamage onStartReceiveDamage { get { return _onStartReceiveDamage; } protected set { _onStartReceiveDamage = value; } }
|
||||
public OnReceiveDamage onReceiveDamage { get { return _onReceiveDamage; } protected set { _onReceiveDamage = value; } }
|
||||
public OnDead onDead { get { return _onDead; } protected set { _onDead = value; } }
|
||||
public UnityEvent onResetHealth;
|
||||
internal bool inHealthRecovery;
|
||||
|
||||
// Właściwości implementujące interfejs, używając typów Invectora
|
||||
public OnReceiveDamage onStartReceiveDamage { get { return _onStartReceiveDamage; } } // Usunięto 'protected set' aby pasowało do get-only interfejsu
|
||||
public OnReceiveDamage onReceiveDamage { get { return _onReceiveDamage; } } // Usunięto 'protected set'
|
||||
public OnDead onDead { get { return _onDead; } } // Usunięto 'protected set'
|
||||
|
||||
#endregion
|
||||
|
||||
protected virtual void Start()
|
||||
{
|
||||
if (fillHealthOnStart)
|
||||
currentHealth = maxHealth;
|
||||
if (fillHealthOnStart) currentHealth = maxHealth;
|
||||
currentHealthRecoveryDelay = healthRecoveryDelay;
|
||||
}
|
||||
|
||||
protected virtual bool canRecoverHealth
|
||||
{
|
||||
get
|
||||
{
|
||||
return (currentHealth >= 0 && healthRecovery > 0 && currentHealth < maxHealth);
|
||||
}
|
||||
get { return (_currentHealth >= 0 && healthRecovery > 0 && _currentHealth < maxHealth && !_isDead); }
|
||||
}
|
||||
|
||||
|
||||
protected virtual IEnumerator RecoverHealth()
|
||||
{
|
||||
inHealthRecovery = true;
|
||||
while (canRecoverHealth && !isDead)
|
||||
while (currentHealthRecoveryDelay > 0 && !_isDead)
|
||||
{
|
||||
currentHealthRecoveryDelay -= Time.deltaTime;
|
||||
yield return null;
|
||||
}
|
||||
while (canRecoverHealth)
|
||||
{
|
||||
HealthRecovery();
|
||||
yield return null;
|
||||
@@ -119,149 +121,122 @@ namespace Invector
|
||||
|
||||
protected virtual void HealthRecovery()
|
||||
{
|
||||
if (!canRecoverHealth||isDead) return;
|
||||
if (currentHealthRecoveryDelay > 0)
|
||||
currentHealthRecoveryDelay -= Time.deltaTime;
|
||||
else
|
||||
if (!canRecoverHealth) return;
|
||||
if (_currentHealth < maxHealth)
|
||||
{
|
||||
if (currentHealth > maxHealth)
|
||||
currentHealth = maxHealth;
|
||||
if (currentHealth < maxHealth)
|
||||
currentHealth += healthRecovery * Time.deltaTime;
|
||||
_currentHealth += healthRecovery * Time.deltaTime;
|
||||
_currentHealth = Mathf.Min(_currentHealth, maxHealth);
|
||||
if (onChangeHealth != null) onChangeHealth.Invoke(_currentHealth);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Increase or decrease currentHealth (Positive or Negative Values)
|
||||
/// </summary>
|
||||
/// <param name="value">Value to change</param>
|
||||
public virtual void AddHealth(int value)
|
||||
{
|
||||
currentHealth += value;
|
||||
currentHealth = Mathf.Clamp(currentHealth, 0, maxHealth);
|
||||
if (!isDead && currentHealth <= 0)
|
||||
{
|
||||
isDead = true;
|
||||
onDead.Invoke(gameObject);
|
||||
}
|
||||
HandleCheckHealthEvents();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Change the currentHealth of Character
|
||||
/// </summary>
|
||||
/// <param name="value"></param>
|
||||
public virtual void ChangeHealth(int value)
|
||||
{
|
||||
currentHealth = value;
|
||||
currentHealth = Mathf.Clamp(currentHealth, 0, maxHealth);
|
||||
if (!isDead && currentHealth <= 0)
|
||||
{
|
||||
isDead = true;
|
||||
onDead.Invoke(gameObject);
|
||||
}
|
||||
HandleCheckHealthEvents();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Reset's current health to specific health value
|
||||
/// </summary>
|
||||
/// <param name="health">target health</param>
|
||||
public virtual void AddHealth(int value) { currentHealth += value; }
|
||||
public virtual void ChangeHealth(int value) { currentHealth = value; }
|
||||
public virtual void ResetHealth(float health)
|
||||
{
|
||||
currentHealth = health;
|
||||
onResetHealth.Invoke();
|
||||
if (isDead) isDead = false;
|
||||
currentHealth = Mathf.Clamp(health, 0, maxHealth);
|
||||
if (onResetHealth != null) onResetHealth.Invoke();
|
||||
if (_isDead && _currentHealth > 0) isDead = false;
|
||||
}
|
||||
/// <summary>
|
||||
/// Reset's current health to max health
|
||||
/// </summary>
|
||||
public virtual void ResetHealth()
|
||||
{
|
||||
currentHealth = maxHealth;
|
||||
onResetHealth.Invoke();
|
||||
if (isDead) isDead = false;
|
||||
if (onResetHealth != null) onResetHealth.Invoke();
|
||||
if (_isDead) isDead = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Change the MaxHealth of Character
|
||||
/// </summary>
|
||||
/// <param name="value"></param>
|
||||
public virtual void ChangeMaxHealth(int value)
|
||||
{
|
||||
maxHealth += value;
|
||||
if (maxHealth < 0)
|
||||
maxHealth = 0;
|
||||
if (maxHealth < 0) maxHealth = 0;
|
||||
if (_currentHealth > maxHealth) currentHealth = maxHealth;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set a value to HealthRecovery to start recovering health
|
||||
/// </summary>
|
||||
/// <param name="value"></param>
|
||||
public virtual void SetHealthRecovery(float value)
|
||||
{
|
||||
healthRecovery = value;
|
||||
StartCoroutine(RecoverHealth());
|
||||
if (!inHealthRecovery && canRecoverHealth && gameObject.activeInHierarchy)
|
||||
{
|
||||
StartCoroutine(RecoverHealth());
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Apply Damage to Current Health
|
||||
/// </summary>
|
||||
/// <param name="damage">damage</param>
|
||||
public virtual void TakeDamage(vDamage damage)
|
||||
{
|
||||
if (damage != null)
|
||||
{
|
||||
onStartReceiveDamage.Invoke(damage);
|
||||
currentHealthRecoveryDelay = currentHealth <= 0 ? 0 : healthRecoveryDelay;
|
||||
if (damage != null && !_isDead)
|
||||
{
|
||||
if (inHealthRecovery)
|
||||
{
|
||||
StopCoroutine(RecoverHealth());
|
||||
inHealthRecovery = false;
|
||||
}
|
||||
currentHealthRecoveryDelay = healthRecoveryDelay;
|
||||
|
||||
if (currentHealth > 0 && !isImmortal)
|
||||
{
|
||||
currentHealth -= damage.damageValue;
|
||||
// Użyj flagi ignoreAllHitEffects zdefiniowanej w Twoim zmodyfikowanym vDamage.cs
|
||||
if (_onStartReceiveDamage != null && !damage.ignoreAllHitEffects)
|
||||
{
|
||||
_onStartReceiveDamage.Invoke(damage);
|
||||
}
|
||||
|
||||
if (_currentHealth > 0 && !isImmortal)
|
||||
{
|
||||
_currentHealth -= damage.damageValue;
|
||||
if (onChangeHealth != null) onChangeHealth.Invoke(_currentHealth);
|
||||
}
|
||||
|
||||
// Użyj flagi ignoreAllHitEffects zdefiniowanej w Twoim zmodyfikowanym vDamage.cs
|
||||
if (damage.damageValue > 0 && _onReceiveDamage != null && !damage.ignoreAllHitEffects)
|
||||
{
|
||||
_onReceiveDamage.Invoke(damage);
|
||||
}
|
||||
|
||||
if (_currentHealth <= 0 && !_isDead)
|
||||
{
|
||||
isDead = true;
|
||||
}
|
||||
|
||||
if (damage.damageValue > 0)
|
||||
onReceiveDamage.Invoke(damage);
|
||||
HandleCheckHealthEvents();
|
||||
|
||||
if (!_isDead && healthRecovery > 0 && !inHealthRecovery && gameObject.activeInHierarchy)
|
||||
{
|
||||
StartCoroutine(RecoverHealth());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void HandleCheckHealthEvents()
|
||||
{
|
||||
var events = checkHealthEvents.FindAll(e => (e.healthCompare == CheckHealthEvent.HealthCompare.Equals && currentHealth.Equals(e.healthToCheck)) ||
|
||||
(e.healthCompare == CheckHealthEvent.HealthCompare.HigherThan && currentHealth > (e.healthToCheck)) ||
|
||||
(e.healthCompare == CheckHealthEvent.HealthCompare.LessThan && currentHealth < (e.healthToCheck)));
|
||||
|
||||
for (int i = 0; i < events.Count; i++)
|
||||
if (checkHealthEvents == null) return;
|
||||
for (int i = 0; i < checkHealthEvents.Count; i++)
|
||||
{
|
||||
events[i].OnCheckHealth.Invoke();
|
||||
var e = checkHealthEvents[i];
|
||||
if (e == null || e.OnCheckHealth == null) continue;
|
||||
bool conditionMet = false;
|
||||
switch (e.healthCompare)
|
||||
{
|
||||
case CheckHealthEvent.HealthCompare.Equals:
|
||||
conditionMet = Mathf.Approximately(_currentHealth, e.healthToCheck);
|
||||
break;
|
||||
case CheckHealthEvent.HealthCompare.HigherThan:
|
||||
conditionMet = _currentHealth > e.healthToCheck;
|
||||
break;
|
||||
case CheckHealthEvent.HealthCompare.LessThan:
|
||||
conditionMet = _currentHealth < e.healthToCheck;
|
||||
break;
|
||||
}
|
||||
if (conditionMet)
|
||||
{
|
||||
e.OnCheckHealth.Invoke();
|
||||
}
|
||||
}
|
||||
if (currentHealth < maxHealth && this.gameObject.activeInHierarchy && !inHealthRecovery)
|
||||
StartCoroutine(RecoverHealth());
|
||||
}
|
||||
|
||||
[System.Serializable]
|
||||
public class CheckHealthEvent
|
||||
{
|
||||
public int healthToCheck;
|
||||
public float healthToCheck;
|
||||
public bool disableEventOnCheck;
|
||||
|
||||
public enum HealthCompare
|
||||
{
|
||||
Equals,
|
||||
HigherThan,
|
||||
LessThan
|
||||
}
|
||||
|
||||
public enum HealthCompare { Equals, HigherThan, LessThan }
|
||||
public HealthCompare healthCompare = HealthCompare.Equals;
|
||||
|
||||
public UnityEngine.Events.UnityEvent OnCheckHealth;
|
||||
}
|
||||
|
||||
[System.Serializable]
|
||||
public class ValueChangedEvent : UnityEvent<float>
|
||||
{
|
||||
|
||||
public UnityEvent OnCheckHealth = new UnityEvent();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Invector
|
||||
{
|
||||
[System.Serializable]
|
||||
@@ -14,7 +15,7 @@ namespace Invector
|
||||
public bool ignoreDefense;
|
||||
[Tooltip("Activated Ragdoll when hit the Character")]
|
||||
public bool activeRagdoll;
|
||||
[vHideInInspector("activeRagdoll"),Tooltip("Time to keep Ragdoll active")]
|
||||
[vHideInInspector("activeRagdoll"), Tooltip("Time to keep Ragdoll active")]
|
||||
public float senselessTime;
|
||||
[HideInInspector]
|
||||
public Transform sender;
|
||||
@@ -22,7 +23,7 @@ namespace Invector
|
||||
public Transform receiver;
|
||||
[HideInInspector]
|
||||
public Vector3 hitPosition;
|
||||
public bool hitReaction = true;
|
||||
public bool hitReaction = true; // To pole Invectora pozostaje
|
||||
[HideInInspector]
|
||||
public int recoil_id = 0;
|
||||
[HideInInspector]
|
||||
@@ -30,32 +31,65 @@ namespace Invector
|
||||
public string damageType;
|
||||
[HideInInspector] public Vector3 force;
|
||||
|
||||
// >>> NASZE NOWE POLE <<<
|
||||
[Tooltip("If true, will attempt to bypass standard hit reaction animations, sounds, and events like OnReceiveDamage.")]
|
||||
public bool ignoreAllHitEffects = false;
|
||||
|
||||
public vDamage()
|
||||
{
|
||||
this.damageValue = 15;
|
||||
this.staminaBlockCost = 5;
|
||||
this.staminaRecoveryDelay = 1;
|
||||
this.hitReaction = true;
|
||||
this.ignoreAllHitEffects = false; // Domyślnie efekty są włączone
|
||||
}
|
||||
|
||||
public vDamage(int value)
|
||||
{
|
||||
this.damageValue = value;
|
||||
this.hitReaction = true;
|
||||
this.ignoreAllHitEffects = false; // Domyślnie efekty są włączone
|
||||
}
|
||||
|
||||
public vDamage(int value, bool ignoreReaction)
|
||||
// Ten konstruktor już istniał, zmodyfikujemy go lekko
|
||||
// lub dodamy nowy, jeśli chcemy zachować stary w niezmienionej formie.
|
||||
// Dla uproszczenia, zmodyfikujmy ten, aby przyjmował naszą nową flagę.
|
||||
// Jeśli `ignoreReactionOrEffects` jest true, ustawiamy obie flagi.
|
||||
public vDamage(int value, bool ignoreReactionAndAllEffects)
|
||||
{
|
||||
this.damageValue = value;
|
||||
this.hitReaction = !ignoreReaction;
|
||||
if (ignoreReaction)
|
||||
this.ignoreAllHitEffects = ignoreReactionAndAllEffects; // Ustawiamy naszą nową flagę
|
||||
|
||||
if (ignoreReactionAndAllEffects)
|
||||
{
|
||||
this.hitReaction = false; // Jeśli ignorujemy wszystkie efekty, to reakcję też
|
||||
this.recoil_id = -1;
|
||||
this.reaction_id = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.hitReaction = true; // W przeciwnym razie standardowa reakcja
|
||||
}
|
||||
}
|
||||
|
||||
// Możesz też dodać bardziej specyficzny konstruktor tylko dla naszej flagi,
|
||||
// jeśli chcesz mieć większą kontrolę:
|
||||
/*
|
||||
public vDamage(int value, bool setHitReaction, bool setIgnoreAllHitEffects)
|
||||
{
|
||||
this.damageValue = value;
|
||||
this.hitReaction = setHitReaction;
|
||||
this.ignoreAllHitEffects = setIgnoreAllHitEffects;
|
||||
if (!setHitReaction) // Jeśli hitReaction jest false
|
||||
{
|
||||
this.recoil_id = -1;
|
||||
this.reaction_id = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
public vDamage(vDamage damage)
|
||||
|
||||
public vDamage(vDamage damage) // Konstruktor kopiujący
|
||||
{
|
||||
this.damageValue = damage.damageValue;
|
||||
this.staminaBlockCost = damage.staminaBlockCost;
|
||||
@@ -70,6 +104,9 @@ namespace Invector
|
||||
this.hitPosition = damage.hitPosition;
|
||||
this.senselessTime = damage.senselessTime;
|
||||
this.force = damage.force;
|
||||
this.hitReaction = damage.hitReaction; // Skopiuj oryginalne pole hitReaction
|
||||
// >>> SKOPIUJ NASZE NOWE POLE <<<
|
||||
this.ignoreAllHitEffects = damage.ignoreAllHitEffects;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
BIN
Assets/ThirdParty/Invector-3rdPersonController/Melee Combat/Audio/Player_cough.ogg
vendored
Normal file
BIN
Assets/ThirdParty/Invector-3rdPersonController/Melee Combat/Audio/Player_cough.ogg
vendored
Normal file
Binary file not shown.
41
Assets/ThirdParty/Invector-3rdPersonController/Melee Combat/Audio/Player_cough.ogg.meta
vendored
Normal file
41
Assets/ThirdParty/Invector-3rdPersonController/Melee Combat/Audio/Player_cough.ogg.meta
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 08f8ddcc9fadca44b88de3155aa75c5e
|
||||
AudioImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 8
|
||||
defaultSettings:
|
||||
serializedVersion: 2
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 0
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
preloadAudioData: 0
|
||||
platformSettingOverrides:
|
||||
4:
|
||||
serializedVersion: 2
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 0
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
preloadAudioData: 0
|
||||
7:
|
||||
serializedVersion: 2
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 1
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
preloadAudioData: 0
|
||||
forceToMono: 0
|
||||
normalize: 1
|
||||
loadInBackground: 0
|
||||
ambisonic: 0
|
||||
3D: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -845,7 +845,7 @@ PlayerSettings:
|
||||
webWasm2023: 0
|
||||
scriptingDefineSymbols:
|
||||
: UNITY_POST_PROCESSING_STACK_V2
|
||||
Android: UNITY_POST_PROCESSING_STACK_V2;CROSS_PLATFORM_INPUT;USE_TIMELINE;USE_NEW_INPUT;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER;TMP_PRESENT
|
||||
Android: UNITY_POST_PROCESSING_STACK_V2;CROSS_PLATFORM_INPUT;USE_TIMELINE;USE_NEW_INPUT;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER;TMP_PRESENT;ENEMIES_DISABLED
|
||||
CloudRendering: UNITY_POST_PROCESSING_STACK_V2;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER
|
||||
EmbeddedLinux: UNITY_POST_PROCESSING_STACK_V2;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER
|
||||
GameCoreScarlett: UNITY_POST_PROCESSING_STACK_V2;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER
|
||||
@@ -857,12 +857,12 @@ PlayerSettings:
|
||||
QNX: UNITY_POST_PROCESSING_STACK_V2;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER
|
||||
ReservedCFE: UNITY_POST_PROCESSING_STACK_V2;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER
|
||||
Stadia: UNITY_POST_PROCESSING_STACK_V2;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER
|
||||
Standalone: UNITY_POST_PROCESSING_STACK_V2;CROSS_PLATFORM_INPUT;INVECTOR_BASIC;INVECTOR_MELEE;TOUCH_REACT;GAIA_2_PRESENT;INVECTOR_AI_TEMPLATE;UPPipeline;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER;URP_OUTLINE;ODIN_INSPECTOR;ODIN_INSPECTOR_3;TMP_PRESENT;USE_TIMELINE;ODIN_INSPECTOR_3_1;ODIN_INSPECTOR_3_2;ODIN_INSPECTOR_3_3
|
||||
Standalone: UNITY_POST_PROCESSING_STACK_V2;CROSS_PLATFORM_INPUT;INVECTOR_BASIC;INVECTOR_MELEE;TOUCH_REACT;GAIA_2_PRESENT;INVECTOR_AI_TEMPLATE;UPPipeline;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER;URP_OUTLINE;ODIN_INSPECTOR;ODIN_INSPECTOR_3;TMP_PRESENT;USE_TIMELINE;ODIN_INSPECTOR_3_1;ODIN_INSPECTOR_3_2;ODIN_INSPECTOR_3_3;ENEMIES_DISABLED
|
||||
VisionOS: UNITY_POST_PROCESSING_STACK_V2;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER
|
||||
WebGL: UNITY_POST_PROCESSING_STACK_V2;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER
|
||||
Windows Store Apps: UNITY_POST_PROCESSING_STACK_V2;CROSS_PLATFORM_INPUT;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER
|
||||
XboxOne: UNITY_POST_PROCESSING_STACK_V2;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER
|
||||
iPhone: CROSS_PLATFORM_INPUT;INVECTOR_BASIC;INVECTOR_MELEE;GAIA_2_PRESENT;GAIA_PRO_PRESENT;UPPipeline;UNITY_POST_PROCESSING_STACK_V2;TOUCH_REACT;INVECTOR_AI_TEMPLATE;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER;URP_OUTLINE;ODIN_INSPECTOR;ODIN_INSPECTOR_3;TMP_PRESENT;USE_INVECTOR_INVENTORY;USE_TIMELINE;ODIN_INSPECTOR_3_1;ODIN_INSPECTOR_3_2;ODIN_INSPECTOR_3_3
|
||||
iPhone: CROSS_PLATFORM_INPUT;INVECTOR_BASIC;INVECTOR_MELEE;GAIA_2_PRESENT;GAIA_PRO_PRESENT;UPPipeline;UNITY_POST_PROCESSING_STACK_V2;TOUCH_REACT;INVECTOR_AI_TEMPLATE;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER;URP_OUTLINE;ODIN_INSPECTOR;ODIN_INSPECTOR_3;TMP_PRESENT;USE_INVECTOR_INVENTORY;USE_TIMELINE;ODIN_INSPECTOR_3_1;ODIN_INSPECTOR_3_2;ODIN_INSPECTOR_3_3;ENEMIES_DISABLED
|
||||
tvOS: UNITY_POST_PROCESSING_STACK_V2;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER
|
||||
additionalCompilerArguments: {}
|
||||
platformArchitecture: {}
|
||||
|
||||
Reference in New Issue
Block a user