TO SQUASH: Shark sparks.

This commit is contained in:
2026-08-28 14:04:01 -04:00
parent 353e421e51
commit cb1db7c8b2
15 changed files with 504 additions and 8 deletions
+73
View File
@@ -0,0 +1,73 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1102 &-6451065305117323607
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: SparksAnimation
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: 04fd10121fb134b65914c672353e26b3, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Sparks
serializedVersion: 6
m_AnimatorParameters: []
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: 3613742741305298000}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 0
m_SyncedLayerIndex: -1
m_DefaultWeight: 0
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
m_EvaluateTransitionsOnStart: 1
--- !u!1107 &3613742741305298000
AnimatorStateMachine:
serializedVersion: 7
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Base Layer
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: -6451065305117323607}
m_Position: {x: 400, y: 120, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: -6451065305117323607}
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: aa3473b43d498dcf4a26c86ac694c191
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,101 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: SparksAnimation
serializedVersion: 8
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves:
- serializedVersion: 2
curve:
- time: 0
value: {fileID: 804881131990760745, guid: 0cc6299f172e703acbb957c74b1d388d, type: 3}
- time: 0.13333334
value: {fileID: -931251876, guid: 0cc6299f172e703acbb957c74b1d388d, type: 3}
- time: 0.26666668
value: {fileID: -1750226195, guid: 0cc6299f172e703acbb957c74b1d388d, type: 3}
- time: 0.4
value: {fileID: -916251104, guid: 0cc6299f172e703acbb957c74b1d388d, type: 3}
- time: 0.53333336
value: {fileID: 9122294262205109509, guid: b634b1f944e581cbeb43efe97e96ec62, type: 3}
- time: 0.68333334
value: {fileID: -2073985705, guid: 0cc6299f172e703acbb957c74b1d388d, type: 3}
- time: 0.8333333
value: {fileID: -633247957, guid: 0cc6299f172e703acbb957c74b1d388d, type: 3}
- time: 0.98333335
value: {fileID: 9122294262205109509, guid: b634b1f944e581cbeb43efe97e96ec62, type: 3}
attribute: m_Sprite
path:
classID: 212
script: {fileID: 0}
flags: 2
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: 0
script: {fileID: 0}
typeID: 212
customType: 23
isPPtrCurve: 1
isIntCurve: 0
isSerializeReferenceCurve: 0
metaData: 0
pptrCurveMapping:
- {fileID: 804881131990760745, guid: 0cc6299f172e703acbb957c74b1d388d, type: 3}
- {fileID: -931251876, guid: 0cc6299f172e703acbb957c74b1d388d, type: 3}
- {fileID: -1750226195, guid: 0cc6299f172e703acbb957c74b1d388d, type: 3}
- {fileID: -916251104, guid: 0cc6299f172e703acbb957c74b1d388d, type: 3}
- {fileID: 9122294262205109509, guid: b634b1f944e581cbeb43efe97e96ec62, type: 3}
- {fileID: -2073985705, guid: 0cc6299f172e703acbb957c74b1d388d, type: 3}
- {fileID: -633247957, guid: 0cc6299f172e703acbb957c74b1d388d, type: 3}
- {fileID: 9122294262205109509, guid: b634b1f944e581cbeb43efe97e96ec62, type: 3}
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
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: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events:
- time: 0.98333335
functionName: DestroySpark
data:
objectReferenceParameter: {fileID: 0}
floatParameter: 0
intParameter: 0
messageOptions: 0
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 04fd10121fb134b65914c672353e26b3
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:
+130
View File
@@ -0,0 +1,130 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &7445253572437675077
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8157769840265605414}
- component: {fileID: 4691363455512708982}
- component: {fileID: 3936362052919834525}
- component: {fileID: 8542768741526144376}
m_Layer: 0
m_Name: Shark Spark
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8157769840265605414
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7445253572437675077}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -4.802, y: -1.499, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &4691363455512708982
SpriteRenderer:
serializedVersion: 3
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7445253572437675077}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 0
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 0
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: -480107125
m_SortingLayer: 2
m_SortingOrder: 5
m_MaskInteraction: 0
m_Sprite: {fileID: 804881131990760745, guid: 0cc6299f172e703acbb957c74b1d388d, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 0.03, y: 0.03}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_SpriteSortPoint: 0
m_BlendShapeWeights: []
--- !u!95 &3936362052919834525
Animator:
serializedVersion: 7
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7445253572437675077}
m_Enabled: 1
m_Avatar: {fileID: 0}
m_Controller: {fileID: 9100000, guid: aa3473b43d498dcf4a26c86ac694c191, type: 2}
m_CullingMode: 0
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_AnimatePhysics: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!114 &8542768741526144376
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7445253572437675077}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bc6262e498fa2d2eba7d1e3d1b58f1cb, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::SharkSpark
+7
View File
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 3fea7e0b996bbe3e1bc57731c745dd59
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+3 -2
View File
@@ -301,15 +301,16 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 3825f704ee14d8c98932133fbd46c2fd, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Shark
canvas: {fileID: 0}
notificationPrefab: {fileID: 6394082776706812922, guid: 5cb297a990ab535aa8ef2b8054c9db1b, type: 3}
spawnSound: {fileID: 8300000, guid: d4361e7549f260e4b801816c2ad35ccc, type: 3}
angrySound: {fileID: 8300000, guid: cc18c0832a7994c78bf33a2384a65f50, type: 3}
tiredSound: {fileID: 8300000, guid: bd98ba95bc1ff6961a95e12400cd71ce, type: 3}
deathSound: {fileID: 8300000, guid: e5a1c23ef78e24350938cbaa612817bb, type: 3}
hitSound: {fileID: 8300000, guid: 0535a1781b9d2e8018f56aa45b71932a, type: 3}
player: {fileID: 0}
sparkPrefab: {fileID: 7445253572437675077, guid: 3fea7e0b996bbe3e1bc57731c745dd59, type: 3}
gameBoardSpriteRenderer: {fileID: 0}
notificationPrefab: {fileID: 6394082776706812922, guid: 5cb297a990ab535aa8ef2b8054c9db1b, type: 3}
canvas: {fileID: 0}
normalMaxSpeed: 2.5
turnRateDegreesPerSecond: 180
speedChangeRate: 4
+1
View File
@@ -279,6 +279,7 @@ public class LevelEnder : MonoBehaviour
cakeSpawner.StartSpawning();
ballSpawner.StartSpawning();
multiplierSpawner.Reset();
sharkSpawner.Reset();
// Reset state.
levelEnded = false;
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a68da2f7dbe6b99dfb0fc455293e9bad
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -15,6 +15,8 @@ public class Shark : NotifierBase
public Player player;
public GameObject sparkPrefab;
public SpriteRenderer gameBoardSpriteRenderer;
private Bounds? gameBoardBounds = null;
@@ -39,6 +41,8 @@ public class Shark : NotifierBase
private static int sharkKillPoints = 1000;
private static float sparkSpawnIntervalSeconds = 1.0f / 10.0f;
private bool spawnFinished = false;
[SerializeField]
@@ -73,6 +77,8 @@ public class Shark : NotifierBase
private float currentTargetTimer = 0f;
private float sparkSpawnTimer = 0f;
private bool killed = false;
// Start is called once before the first execution of Update after the MonoBehaviour is created
@@ -268,10 +274,35 @@ public class Shark : NotifierBase
Vector2 nextPosition = currentPosition + forward * (currentSpeed * Time.fixedDeltaTime);
transform.position = new Vector3(nextPosition.x, nextPosition.y, transform.position.z);
float movedDistanceSqr = (nextPosition - currentPosition).sqrMagnitude;
if (movedDistanceSqr > 0.000001f)
{
sparkSpawnTimer += Time.fixedDeltaTime;
while (sparkSpawnTimer >= sparkSpawnIntervalSeconds)
{
SpawnSpark();
sparkSpawnTimer -= sparkSpawnIntervalSeconds;
}
}
else
{
sparkSpawnTimer = 0f;
}
angle = QuantizeAngleToTen(currentHeadingAngle);
}
}
private void SpawnSpark()
{
if (sparkPrefab == null)
{
return;
}
Instantiate(sparkPrefab, transform.position, Quaternion.identity);
}
private Vector2 ChooseRandomTarget()
{
Bounds bounds = movementBounds.Value;
+9
View File
@@ -0,0 +1,9 @@
using UnityEngine;
public class SharkSpark : MonoBehaviour
{
public void DestroySpark()
{
Destroy(gameObject);
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: bc6262e498fa2d2eba7d1e3d1b58f1cb
Binary file not shown.

Before

Width:  |  Height:  |  Size: 271 B

After

Width:  |  Height:  |  Size: 455 B

+123 -6
View File
@@ -37,7 +37,7 @@ TextureImporter:
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
@@ -118,10 +118,10 @@ TextureImporter:
serializedVersion: 2
x: 0
y: 0
width: 25
height: 5
width: 3
height: 3
alignment: 0
pivot: {x: 0, y: 0}
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
@@ -134,11 +134,121 @@ TextureImporter:
indices:
edges: []
weights: []
- serializedVersion: 2
name: 180_1
rect:
serializedVersion: 2
x: 4
y: 0
width: 3
height: 3
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 7558062424373cb62a4e92974d957708
internalID: -931251876
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: 180_2
rect:
serializedVersion: 2
x: 8
y: 0
width: 3
height: 3
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 0be3b76ce5c1256b286fc608266afeab
internalID: -1750226195
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: 180_3
rect:
serializedVersion: 2
x: 12
y: 0
width: 3
height: 3
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 1318e75ac29c8e385b1e1d46bb78ac3a
internalID: -916251104
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: 180_4
rect:
serializedVersion: 2
x: 16
y: 0
width: 3
height: 3
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: afdece2f22bf8873faa6dbcdc19ddbb2
internalID: -2073985705
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: 180_5
rect:
serializedVersion: 2
x: 20
y: 0
width: 3
height: 3
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: ca26baeb0bfca8ecc9a2359f31973ec3
internalID: -633247957
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
spriteID: 4baf6a65ee52e6ab1836ea2d22a93fbf
internalID: 0
vertices: []
indices:
@@ -146,9 +256,16 @@ TextureImporter:
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
entries:
- key: SpriteEditor.SliceSettings
value: '{"sliceOnImport":false,"gridCellCount":{"x":6.0,"y":1.0},"gridSpriteSize":{"x":3.0,"y":3.0},"gridSpriteOffset":{"x":0.0,"y":0.0},"gridSpritePadding":{"x":1.0,"y":0.0},"pivot":{"x":0.5,"y":0.5},"pivotPixels":{"x":0.0,"y":0.0},"autoSlicingMethod":0,"spriteAlignment":0,"pivotUnitMode":0,"slicingType":2,"keepEmptyRects":false,"isAlternate":false}'
nameFileIdTable:
180_0: 804881131990760745
180_1: -931251876
180_2: -1750226195
180_3: -916251104
180_4: -2073985705
180_5: -633247957
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData: