From 6b4ddb101f257fd0f16a9ebe87de9cbfe7142a16 Mon Sep 17 00:00:00 2001 From: Chris Date: Thu, 20 Mar 2025 15:24:28 -0400 Subject: [PATCH] added: lock on target graphic --- Assets/Core/UI/In-Game/Graphics.meta | 8 ++ .../UI/In-Game/Graphics/Icon-LockOnTarget.png | Bin 0 -> 4784 bytes .../Graphics/Icon-LockOnTarget.png.meta | 117 ++++++++++++++++++ .../Layouts/BlankFullSizeUILayout.uxml | 7 +- Assets/Scenes/SampleScene.unity | 3 +- Assets/Scripts/Core/LockOnManager.cs | 36 +++++- Assets/Scripts/Core/LockOnManager.cs.meta | 11 +- Assets/UI Toolkit/PanelSettings.asset | 6 +- 8 files changed, 178 insertions(+), 10 deletions(-) create mode 100644 Assets/Core/UI/In-Game/Graphics.meta create mode 100644 Assets/Core/UI/In-Game/Graphics/Icon-LockOnTarget.png create mode 100644 Assets/Core/UI/In-Game/Graphics/Icon-LockOnTarget.png.meta diff --git a/Assets/Core/UI/In-Game/Graphics.meta b/Assets/Core/UI/In-Game/Graphics.meta new file mode 100644 index 0000000..2b10c10 --- /dev/null +++ b/Assets/Core/UI/In-Game/Graphics.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e45b89ba6f77d1143bc70dc6be5a042c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Core/UI/In-Game/Graphics/Icon-LockOnTarget.png b/Assets/Core/UI/In-Game/Graphics/Icon-LockOnTarget.png new file mode 100644 index 0000000000000000000000000000000000000000..d83675369e790504f09b1cf308c89e3ee3d82058 GIT binary patch literal 4784 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 literal 0 HcmV?d00001 diff --git a/Assets/Core/UI/In-Game/Graphics/Icon-LockOnTarget.png.meta b/Assets/Core/UI/In-Game/Graphics/Icon-LockOnTarget.png.meta new file mode 100644 index 0000000..952fe07 --- /dev/null +++ b/Assets/Core/UI/In-Game/Graphics/Icon-LockOnTarget.png.meta @@ -0,0 +1,117 @@ +fileFormatVersion: 2 +guid: fca1c462b5714044698de6793787093a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Core/UI/In-Game/Layouts/BlankFullSizeUILayout.uxml b/Assets/Core/UI/In-Game/Layouts/BlankFullSizeUILayout.uxml index 41e0d13..d325e22 100644 --- a/Assets/Core/UI/In-Game/Layouts/BlankFullSizeUILayout.uxml +++ b/Assets/Core/UI/In-Game/Layouts/BlankFullSizeUILayout.uxml @@ -1,3 +1,8 @@ - + + + + + + diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index c7b14eb..70b4c35 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -2922,7 +2922,7 @@ MonoBehaviour: BindingMode: 0 PositionDamping: {x: 1, y: 1, z: 1} AngularDampingMode: 0 - RotationDamping: {x: 0.7, y: 0.7, z: 0.7} + RotationDamping: {x: 0, y: 0, z: 0} QuaternionDamping: 1 OrbitStyle: 1 Radius: 10 @@ -6759,6 +6759,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: lockOnDocument: {fileID: 1223043171} + lockOnTarget: {fileID: 1379573502} --- !u!1 &2024357130 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Core/LockOnManager.cs b/Assets/Scripts/Core/LockOnManager.cs index 5ac1a33..091a568 100644 --- a/Assets/Scripts/Core/LockOnManager.cs +++ b/Assets/Scripts/Core/LockOnManager.cs @@ -5,16 +5,44 @@ using UnityEngine.UIElements; public class LockOnManager : MonoBehaviour{ [ShowInInspector] public UIDocument lockOnDocument; - [ShowInInspector, SerializeField] - public ILockOnTarget lockOnTarget; + public GameObject lockOnTarget; + + private Label elementLabelName; + private VisualElement elementRoot; // Start is called once before the first execution of Update after the MonoBehaviour is created void Start() { + if (lockOnTarget.GetComponent() == null) { + Debug.LogError($"Game Object {lockOnTarget.name} does not implement the ILockOnTarget interface. Not processing lock-on actions!"); + } + elementRoot = lockOnDocument.rootVisualElement.Query("LockOnGroup"); + elementLabelName = lockOnDocument.rootVisualElement.Query