feat: 3D off-screen indicators for items&players, gravity changer objects
This commit is contained in:
parent
c7154c1895
commit
68ecddd9ca
@ -1 +0,0 @@
|
||||
{"asset":{"generator":"3D Builder","version":"2.0"},"scene":0,"scenes":[{"nodes":[0]}],"nodes":[{"children":[1,2]},{"mesh":0,"matrix":[1,0,0,0,0,-1.1920928955078125E-7,-0.99999988079071045,0,0,0.99999988079071045,-1.1920928955078125E-7,0,0,0,0,1]},{"mesh":1,"matrix":[37.501873016357422,0,0,0,0,-2.9802320611338473E-8,-0.24999995529651642,0,0,2.5001249313354492,-2.9803814527440409E-7,0,-0.75,-0.050000172108411789,-1.4842503070831299,1]}],"meshes":[{"primitives":[{"attributes":{"POSITION":0,"COLOR_0":1},"mode":4,"indices":2}]},{"primitives":[{"attributes":{"POSITION":3,"COLOR_0":4},"mode":4,"indices":5}]}],"accessors":[{"bufferView":0,"byteOffset":0,"count":60,"componentType":5126,"type":"VEC3","min":[-0.75,-0.0050000823102891445,-0.050000004470348358],"max":[0.74999988079071045,1.4950000047683716,0.050000008195638657]},{"bufferView":1,"byteOffset":0,"count":60,"componentType":5121,"type":"VEC4","normalized":true},{"bufferView":2,"byteOffset":0,"count":396,"componentType":5125,"type":"SCALAR"},{"bufferView":3,"byteOffset":0,"count":8,"componentType":5126,"type":"VEC3","min":[0,0.042998004704713821,0],"max":[0.039998002350330353,0.082998007535934448,0.039998002350330353]},{"bufferView":4,"byteOffset":0,"count":8,"componentType":5121,"type":"VEC4","normalized":true},{"bufferView":5,"byteOffset":0,"count":36,"componentType":5125,"type":"SCALAR"}],"bufferViews":[{"buffer":0,"byteOffset":0,"byteLength":720,"byteStride":12,"target":34962},{"buffer":0,"byteOffset":720,"byteLength":240,"byteStride":4,"target":34962},{"buffer":0,"byteOffset":960,"byteLength":1584,"target":34963},{"buffer":0,"byteOffset":2544,"byteLength":96,"byteStride":12,"target":34962},{"buffer":0,"byteOffset":2640,"byteLength":32,"byteStride":4,"target":34962},{"buffer":0,"byteOffset":2672,"byteLength":144,"target":34963}],"buffers":[{"byteLength":2816,"uri":"PlayZoneBoundary.bin"}]}
|
||||
@ -1,30 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 303177f7648454b4fb8179c1378dd1ec
|
||||
ScriptedImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
script: {fileID: 11500000, guid: 715df9372183c47e389bb6e19fbc3b52, type: 3}
|
||||
editorImportSettings:
|
||||
generateSecondaryUVSet: 0
|
||||
importSettings:
|
||||
nodeNameMethod: 1
|
||||
animationMethod: 2
|
||||
generateMipMaps: 1
|
||||
defaultMinFilterMode: 9729
|
||||
defaultMagFilterMode: 9729
|
||||
anisotropicFilterLevel: 1
|
||||
instantiationSettings:
|
||||
mask: -1
|
||||
layer: 0
|
||||
skinUpdateWhenOffscreen: 1
|
||||
lightIntensityFactor: 1
|
||||
sceneObjectCreation: 2
|
||||
assetDependencies:
|
||||
- type: 0
|
||||
originalUri: Assets\Models\PlayZoneBoundary.bin
|
||||
assetPath: Assets\Models\PlayZoneBoundary.bin
|
||||
reportItems: []
|
||||
@ -29,7 +29,7 @@ Transform:
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 3, y: 3, z: 3}
|
||||
m_LocalScale: {x: 5, y: 5, z: 5}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children:
|
||||
- {fileID: 4274613733215928132}
|
||||
@ -77,7 +77,6 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 42bb47879381c4f498a115b2b84b191a, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
ForcesManager: {fileID: 0}
|
||||
RenderedZoneObject: {fileID: 3847966118592310179}
|
||||
GravityEffect: {fileID: 2798249376021352391}
|
||||
GravityColors:
|
||||
@ -91,86 +90,122 @@ MonoBehaviour:
|
||||
color: {r: 0.25471687, g: 0.77203095, b: 1, a: 0.3529412}
|
||||
- gravity: 4
|
||||
color: {r: 1, g: 0.4656382, b: 0.2471698, a: 0.3529412}
|
||||
_gravity: 0
|
||||
--- !u!1001 &4147390443820438502
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 5300185106086715317}
|
||||
m_Modifications:
|
||||
- target: {fileID: 930210402018179143, guid: 42641a1e05f4e084bae7d69b644dfd81, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Nimble Zone Sphere
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 930210402018337895, guid: 42641a1e05f4e084bae7d69b644dfd81, type: 3}
|
||||
propertyPath: m_LocalScale.x
|
||||
value: 0.5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 930210402018337895, guid: 42641a1e05f4e084bae7d69b644dfd81, type: 3}
|
||||
propertyPath: m_LocalScale.y
|
||||
value: 0.5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 930210402018337895, guid: 42641a1e05f4e084bae7d69b644dfd81, type: 3}
|
||||
propertyPath: m_LocalScale.z
|
||||
value: 0.5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 930210402018337895, guid: 42641a1e05f4e084bae7d69b644dfd81, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 930210402018337895, guid: 42641a1e05f4e084bae7d69b644dfd81, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 930210402018337895, guid: 42641a1e05f4e084bae7d69b644dfd81, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 930210402018337895, guid: 42641a1e05f4e084bae7d69b644dfd81, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 930210402018337895, guid: 42641a1e05f4e084bae7d69b644dfd81, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 930210402018337895, guid: 42641a1e05f4e084bae7d69b644dfd81, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 930210402018337895, guid: 42641a1e05f4e084bae7d69b644dfd81, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 930210402018337895, guid: 42641a1e05f4e084bae7d69b644dfd81, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 930210402018337895, guid: 42641a1e05f4e084bae7d69b644dfd81, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 930210402018337895, guid: 42641a1e05f4e084bae7d69b644dfd81, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 42641a1e05f4e084bae7d69b644dfd81, type: 3}
|
||||
--- !u!4 &3847966118591952769 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 930210402018337895, guid: 42641a1e05f4e084bae7d69b644dfd81, type: 3}
|
||||
m_PrefabInstance: {fileID: 4147390443820438502}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1 &3847966118592310179 stripped
|
||||
_gravity: 4
|
||||
--- !u!1 &3847966118592310177
|
||||
GameObject:
|
||||
m_CorrespondingSourceObject: {fileID: 930210402018179141, guid: 42641a1e05f4e084bae7d69b644dfd81, type: 3}
|
||||
m_PrefabInstance: {fileID: 4147390443820438502}
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3847966118591952769}
|
||||
m_Layer: 0
|
||||
m_Name: Nimble Zone Sphere
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3847966118591952769
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3847966118592310177}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children:
|
||||
- {fileID: 3847966118591952771}
|
||||
m_Father: {fileID: 5300185106086715317}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &3847966118592310179
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3847966118591952771}
|
||||
- component: {fileID: 3847966118591149987}
|
||||
- component: {fileID: 3847966118590051683}
|
||||
m_Layer: 0
|
||||
m_Name: HighPolySphere
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3847966118591952771
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3847966118592310179}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 3847966118591952769}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &3847966118591149987
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3847966118592310179}
|
||||
m_Mesh: {fileID: 4300000, guid: fc5f274d483f9d24b95d2f4a7eb88be9, type: 3}
|
||||
--- !u!23 &3847966118590051683
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3847966118592310179}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 5cddff495cc77524d991f9778fba844a, type: 2}
|
||||
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: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!1001 &7276724944824422886
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -221,11 +256,11 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4767480441459301921, guid: 9615c7fd8e252c145b562238bcfc1b23, type: 3}
|
||||
propertyPath: ShapeModule.radius.value
|
||||
value: 1.5
|
||||
value: 3
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4767480441459301921, guid: 9615c7fd8e252c145b562238bcfc1b23, type: 3}
|
||||
propertyPath: ShapeModule.radiusThickness
|
||||
value: 0.1
|
||||
value: 0.2
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4767480441459301921, guid: 9615c7fd8e252c145b562238bcfc1b23, type: 3}
|
||||
propertyPath: VelocityModule.inWorldSpace
|
||||
@ -239,17 +274,21 @@ PrefabInstance:
|
||||
propertyPath: InitialModule.maxNumParticles
|
||||
value: 80
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4767480441459301921, guid: 9615c7fd8e252c145b562238bcfc1b23, type: 3}
|
||||
propertyPath: InitialModule.startSize.scalar
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4767480441459301921, guid: 9615c7fd8e252c145b562238bcfc1b23, type: 3}
|
||||
propertyPath: VelocityModule.orbitalX.scalar
|
||||
value: 0.1
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4767480441459301921, guid: 9615c7fd8e252c145b562238bcfc1b23, type: 3}
|
||||
propertyPath: VelocityModule.orbitalY.scalar
|
||||
value: 0.1
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4767480441459301921, guid: 9615c7fd8e252c145b562238bcfc1b23, type: 3}
|
||||
propertyPath: VelocityModule.orbitalZ.scalar
|
||||
value: 0.1
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4767480441459301921, guid: 9615c7fd8e252c145b562238bcfc1b23, type: 3}
|
||||
propertyPath: InitialModule.startSpeed.scalar
|
||||
@ -261,7 +300,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4767480441459301921, guid: 9615c7fd8e252c145b562238bcfc1b23, type: 3}
|
||||
propertyPath: InitialModule.startLifetime.scalar
|
||||
value: 1
|
||||
value: 1.5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4767480441459301921, guid: 9615c7fd8e252c145b562238bcfc1b23, type: 3}
|
||||
propertyPath: VelocityModule.speedModifier.scalar
|
||||
|
||||
@ -92,12 +92,12 @@ MonoBehaviour:
|
||||
zone: 0
|
||||
rippleFrequency: 12
|
||||
rippleDensity: 14
|
||||
rippleAmplitude: 0.1
|
||||
rippleAmplitude: 0.05
|
||||
rippleRadius: 1.62
|
||||
rippleDuration: 1.2
|
||||
rippleDuration: 2
|
||||
impactVelocityModifier: 1
|
||||
minImpact: 0.5
|
||||
maxVelocity: 70
|
||||
minImpact: 0.4
|
||||
maxVelocity: 100
|
||||
--- !u!1001 &4415206198913254025
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -165,7 +165,7 @@ PrefabInstance:
|
||||
- target: {fileID: -7635826562936255635, guid: 24300c11f962a8e4f9f8125bd2843705, type: 3}
|
||||
propertyPath: m_Materials.Array.data[0]
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: 78cb0d90576fe15439f3fd294d5eaaba, type: 2}
|
||||
objectReference: {fileID: 2100000, guid: 1338539d65504394f8f2dd0a628dc423, type: 2}
|
||||
- target: {fileID: 919132149155446097, guid: 24300c11f962a8e4f9f8125bd2843705, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Hex Sphere
|
||||
|
||||
130
Assets/Prefabs/UI/Offscreen Indicator Arrow.prefab
Normal file
130
Assets/Prefabs/UI/Offscreen Indicator Arrow.prefab
Normal file
@ -0,0 +1,130 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &5312737329671837370
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3436878586287575061}
|
||||
m_Layer: 0
|
||||
m_Name: Offscreen Indicator Arrow
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3436878586287575061
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5312737329671837370}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 2, y: 2, z: 3}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 6331211089644692183}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &8144415942864253312
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6331211089644692183}
|
||||
- component: {fileID: 4035525861259110635}
|
||||
- component: {fileID: 7074929712647586998}
|
||||
- component: {fileID: 8551325256346997925}
|
||||
m_Layer: 0
|
||||
m_Name: Indicator3D
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &6331211089644692183
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8144415942864253312}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 3436878586287575061}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &4035525861259110635
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8144415942864253312}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: ed8517591bfdc6b4398d396bc386d5a2, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!33 &7074929712647586998
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8144415942864253312}
|
||||
m_Mesh: {fileID: 3613567641014311022, guid: d912959aabd6a3e439552066ae82eb71, type: 3}
|
||||
--- !u!23 &8551325256346997925
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8144415942864253312}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: ede4fd81521fbf14290f76017e016f6d, type: 2}
|
||||
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: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
7
Assets/Prefabs/UI/Offscreen Indicator Arrow.prefab.meta
Normal file
7
Assets/Prefabs/UI/Offscreen Indicator Arrow.prefab.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fac9d84719a43574f9cfbc19b53aee98
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -6,7 +6,6 @@ using static GravityFunctionality.GravityHelpers;
|
||||
|
||||
namespace GravityFunctionality
|
||||
{
|
||||
[ExecuteInEditMode]
|
||||
public class GravityChanger : MonoBehaviour
|
||||
{
|
||||
private static ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
25
Assets/Scripts/Indicator3D.cs
Normal file
25
Assets/Scripts/Indicator3D.cs
Normal file
@ -0,0 +1,25 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using PrimeTween;
|
||||
using UnityEngine;
|
||||
|
||||
[ExecuteInEditMode]
|
||||
public class Indicator3D : MonoBehaviour
|
||||
{
|
||||
|
||||
void OnEnable()
|
||||
{
|
||||
WaitTillSpawnThenAnimate();
|
||||
}
|
||||
private async void WaitTillSpawnThenAnimate()
|
||||
{
|
||||
await Tween.Delay(0.1f);
|
||||
Sequence.Create(cycles: -1, CycleMode.Rewind, Ease.Default)
|
||||
|
||||
.Group(Tween.LocalPosition(gameObject.transform,
|
||||
gameObject.transform.localPosition - Vector3.forward * 0.001f, 4))
|
||||
|
||||
.Group(Tween.LocalRotation(gameObject.transform,
|
||||
gameObject.transform.localRotation * Quaternion.AngleAxis(180, Vector3.forward), 4));
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/Indicator3D.cs.meta
Normal file
11
Assets/Scripts/Indicator3D.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ed8517591bfdc6b4398d396bc386d5a2
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
120
Assets/Scripts/UI/OffScreenIndicatorManager.cs
Normal file
120
Assets/Scripts/UI/OffScreenIndicatorManager.cs
Normal file
@ -0,0 +1,120 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Managers;
|
||||
using UnityEngine;
|
||||
|
||||
public class OffScreenIndicatorManager : MonoBehaviour
|
||||
{
|
||||
public GameObject[] Targets;
|
||||
public GameObject IndicatorPrefab;
|
||||
public Color DefaultColor = Color.yellow;
|
||||
|
||||
private MeshRenderer _meshRenderer;
|
||||
|
||||
private Camera _camera;
|
||||
private Dictionary<GameObject, GameObject> _targetIndicators = new();
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
_camera = Camera.main;
|
||||
|
||||
foreach (var target in Targets)
|
||||
AddTarget(target);
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
if (_camera == null)
|
||||
{
|
||||
if (Camera.main != null)
|
||||
_camera = Camera.main;
|
||||
return;
|
||||
}
|
||||
bool targetRemoved = false;
|
||||
foreach (KeyValuePair<GameObject, GameObject> entry in _targetIndicators)
|
||||
{
|
||||
var target = entry.Key;
|
||||
var indicator = entry.Value;
|
||||
|
||||
if (target != null)
|
||||
{
|
||||
UpdateTarget(target, indicator);
|
||||
}
|
||||
else
|
||||
{
|
||||
targetRemoved = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!targetRemoved)
|
||||
return;
|
||||
|
||||
GameObject[] targets = _targetIndicators.Keys.ToArray();
|
||||
for (int i = 0; i < targets.Count(); ++i)
|
||||
{
|
||||
if (targets[i] == null)
|
||||
{
|
||||
Destroy(_targetIndicators[targets[i]]);
|
||||
_targetIndicators.Remove(targets[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void AddTarget(GameObject target)
|
||||
{
|
||||
AddTarget(target, DefaultColor);
|
||||
}
|
||||
|
||||
public void AddTarget(GameObject target, Color color)
|
||||
{
|
||||
var indicator = Instantiate(IndicatorPrefab);
|
||||
_meshRenderer = indicator.GetComponentInChildren<MeshRenderer>();
|
||||
indicator.SetActive(false);
|
||||
indicator.transform.SetParent(_camera.transform);
|
||||
_targetIndicators.Add(target, indicator);
|
||||
|
||||
MaterialPropertyBlock materialPropertyBlock = new();
|
||||
materialPropertyBlock.SetColor("_BaseColor", color);
|
||||
_meshRenderer.SetPropertyBlock(materialPropertyBlock);
|
||||
}
|
||||
|
||||
private void UpdateTarget(GameObject target, GameObject indicator)
|
||||
{
|
||||
if (MatchManager.G.matchState != MatchState.Match || target == null
|
||||
|| !target.activeInHierarchy)
|
||||
{
|
||||
indicator.SetActive(false);
|
||||
return;
|
||||
}
|
||||
var screenPos = _camera.WorldToViewportPoint(target.transform.position);
|
||||
bool isOffScreen = screenPos.x <= 0 || screenPos.x >= 1 ||
|
||||
screenPos.y <= 0 || screenPos.y >= 1;
|
||||
if (!isOffScreen)
|
||||
{
|
||||
indicator.SetActive(false);
|
||||
return;
|
||||
}
|
||||
indicator.SetActive(true);
|
||||
|
||||
float margin_x = 0.05f;
|
||||
float margin_y = 0.05f;
|
||||
|
||||
screenPos.x = Mathf.Clamp(screenPos.x, margin_x, 1 - margin_x);
|
||||
screenPos.y = Mathf.Clamp(screenPos.y, margin_y, 1 - margin_y);
|
||||
screenPos.z = Mathf.Clamp(screenPos.z, 0, 1);
|
||||
|
||||
var worldPosition = _camera.ViewportToWorldPoint(screenPos);
|
||||
|
||||
var cameraDirection = _camera.transform.position - worldPosition;
|
||||
|
||||
indicator.transform.position = worldPosition;
|
||||
|
||||
var virtualIndicatorPosition = worldPosition + _camera.transform.localPosition.z * cameraDirection;
|
||||
|
||||
Vector3 direction = target.transform.position - virtualIndicatorPosition;
|
||||
indicator.transform.rotation = Quaternion.FromToRotation(new Vector3(0, 0, 1), direction);
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/UI/OffScreenIndicatorManager.cs.meta
Normal file
11
Assets/Scripts/UI/OffScreenIndicatorManager.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2a453b9260772e8488c230aa7eeca5ff
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/UI/Health&Boost Concept.aseprite
Normal file
BIN
Assets/UI/Health&Boost Concept.aseprite
Normal file
Binary file not shown.
7
Assets/UI/Health&Boost Concept.aseprite.meta
Normal file
7
Assets/UI/Health&Boost Concept.aseprite.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cba0c70a2ad5c8e4c99a3097986dddd3
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Loading…
Reference in New Issue
Block a user