Selected Action UI Visual

master
Sascha 2023-05-05 10:49:01 +07:00
parent 7d18900998
commit 17365d9d51
2202 changed files with 13280 additions and 108041 deletions

@ -889,25 +889,28 @@
<Reference Include="Unity.RenderPipelines.Core.ShaderLibrary">
<HintPath>/home/sascha/current_coding/TurnBasedStrategyCourse/Library/ScriptAssemblies/Unity.RenderPipelines.Core.ShaderLibrary.dll</HintPath>
</Reference>
<Reference Include="Unity.RenderPipelines.Universal.Runtime">
<HintPath>/home/sascha/current_coding/TurnBasedStrategyCourse/Library/ScriptAssemblies/Unity.RenderPipelines.Universal.Runtime.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.State">
<HintPath>/home/sascha/current_coding/TurnBasedStrategyCourse/Library/ScriptAssemblies/Unity.VisualScripting.State.dll</HintPath>
</Reference>
<Reference Include="Unity.Mathematics.Editor">
<HintPath>/home/sascha/current_coding/TurnBasedStrategyCourse/Library/ScriptAssemblies/Unity.Mathematics.Editor.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UI">
<HintPath>/home/sascha/current_coding/TurnBasedStrategyCourse/Library/ScriptAssemblies/UnityEngine.UI.dll</HintPath>
</Reference>
<Reference Include="Unity.Burst.Editor">
<HintPath>/home/sascha/current_coding/TurnBasedStrategyCourse/Library/ScriptAssemblies/Unity.Burst.Editor.dll</HintPath>
</Reference>
<Reference Include="PPv2URPConverters">
<HintPath>/home/sascha/current_coding/TurnBasedStrategyCourse/Library/ScriptAssemblies/PPv2URPConverters.dll</HintPath>
</Reference>
<Reference Include="Unity.Burst">
<Reference Include="Unity.RenderPipelines.Universal.Runtime">
<HintPath>/home/sascha/current_coding/TurnBasedStrategyCourse/Library/ScriptAssemblies/Unity.RenderPipelines.Universal.Runtime.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.State">
<HintPath>/home/sascha/current_coding/TurnBasedStrategyCourse/Library/ScriptAssemblies/Unity.VisualScripting.State.dll</HintPath>
</Reference>
<Reference Include="Unity.Mathematics.Editor">
<HintPath>/home/sascha/current_coding/TurnBasedStrategyCourse/Library/ScriptAssemblies/Unity.Mathematics.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.2D.Sprite.Editor">
<HintPath>/home/sascha/current_coding/TurnBasedStrategyCourse/Library/ScriptAssemblies/Unity.2D.Sprite.Editor.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UI">
<HintPath>/home/sascha/current_coding/TurnBasedStrategyCourse/Library/ScriptAssemblies/UnityEngine.UI.dll</HintPath>
</Reference>
<Reference Include="Unity.Burst.Editor">
<HintPath>/home/sascha/current_coding/TurnBasedStrategyCourse/Library/ScriptAssemblies/Unity.Burst.Editor.dll</HintPath>
</Reference>
<Reference Include="PPv2URPConverters">
<HintPath>/home/sascha/current_coding/TurnBasedStrategyCourse/Library/ScriptAssemblies/PPv2URPConverters.dll</HintPath>
</Reference>
<Reference Include="Unity.Burst">
<HintPath>/home/sascha/current_coding/TurnBasedStrategyCourse/Library/ScriptAssemblies/Unity.Burst.dll</HintPath>
</Reference>
<Reference Include="Unity.RenderPipelines.Core.Runtime">

@ -1,5 +1,81 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1488290772934687072
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4268700046488272757}
- component: {fileID: 5507049652813566191}
- component: {fileID: 2074194121998896043}
m_Layer: 5
m_Name: Selected
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &4268700046488272757
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1488290772934687072}
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: 1
m_Children: []
m_Father: {fileID: 5865150429396454086}
m_RootOrder: -1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0.004699707, y: -0.19650078}
m_SizeDelta: {x: 22.5187, y: 11.3259}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5507049652813566191
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1488290772934687072}
m_CullTransparentMesh: 1
--- !u!114 &2074194121998896043
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1488290772934687072}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 1, b: 0.5810094, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: c4244a05043c3134ea013822a57a2931, type: 3}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 2.5
--- !u!1 &2138288800182202664
GameObject:
m_ObjectHideFlags: 0
@ -151,7 +227,7 @@ GameObject:
- component: {fileID: 6145591600332335804}
- component: {fileID: -7490245403608027888}
m_Layer: 5
m_Name: ActionButtoUI
m_Name: ActionButtonUI
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@ -170,6 +246,7 @@ RectTransform:
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 2697208346875736182}
- {fileID: 4268700046488272757}
m_Father: {fileID: 0}
m_RootOrder: -1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -304,3 +381,4 @@ MonoBehaviour:
m_EditorClassIdentifier:
TextMeshPro: {fileID: 6612581486248163841}
Button: {fileID: 8116724629244445300}
SelectedGameObject: {fileID: 1488290772934687072}

@ -10,7 +10,7 @@ namespace Actions {
public static UnitActionSystem Instance { get; private set; }
private bool IsBusy { get; set; }
public BaseAction SelectedAction { get; set; }
public BaseAction SelectedAction { get; private set; }
public Unit SelectedUnit {
get => selectedUnit;
@ -49,6 +49,7 @@ namespace Actions {
private void ClearBusy() => IsBusy = false;
public event EventHandler OnSelectedUnitChanged;
public event EventHandler OnSelectedActionChanged;
private bool TryHandleUnitSelection() {
if (!Input.GetMouseButtonDown(0)) return false;
@ -65,5 +66,10 @@ namespace Actions {
SelectedAction = unit.MoveAction;
OnSelectedUnitChanged?.Invoke(this, EventArgs.Empty);
}
public void SetSelectedAction(BaseAction baseAction) {
SelectedAction = baseAction;
OnSelectedActionChanged?.Invoke(this, EventArgs.Empty);
}
}
}

@ -7,10 +7,16 @@ namespace UI {
public class ActionButtonUI : MonoBehaviour {
[SerializeField] private TextMeshProUGUI TextMeshPro;
[SerializeField] private Button Button;
[SerializeField] private GameObject SelectedGameObject;
private BaseAction baseAction;
public void SetBaseAction(BaseAction baseAction) {
this.baseAction = baseAction;
TextMeshPro.text = baseAction.GetActionName().ToUpper();
Button.onClick.AddListener(() => { UnitActionSystem.Instance.SelectedAction = baseAction; });
Button.onClick.AddListener(() => { UnitActionSystem.Instance.SetSelectedAction(baseAction); });
}
public void UpdateSelectedVisual() => SelectedGameObject.SetActive(UnitActionSystem.Instance.SelectedAction == baseAction);
}
}

@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using Actions;
using UnityEngine;
@ -7,22 +8,42 @@ namespace UI {
[SerializeField] private Transform ActionButtonPrefab;
[SerializeField] private Transform ActionButtonContainerTransform;
private List<ActionButtonUI> actionButtonUIList;
private void Awake() => actionButtonUIList = new();
private void Start() {
UnitActionSystem.Instance.OnSelectedUnitChanged += UnitActionSystem_OnSelectedUnitChanged;
UnitActionSystem.Instance.OnSelectedActionChanged += UnitActionSystem_OnSelectedActionChanged;
CreateUnitActionButtons();
UpdateSelectedVisual();
}
private void UnitActionSystem_OnSelectedUnitChanged(object sender, EventArgs e) => CreateUnitActionButtons();
private void UnitActionSystem_OnSelectedActionChanged(object sender, EventArgs e) => UpdateSelectedVisual();
private void UnitActionSystem_OnSelectedUnitChanged(object sender, EventArgs e) {
CreateUnitActionButtons();
UpdateSelectedVisual();
}
private void CreateUnitActionButtons() {
foreach (Transform buttonTransform in ActionButtonContainerTransform) {
Destroy(buttonTransform.gameObject);
}
actionButtonUIList.Clear();
foreach (BaseAction baseAction in UnitActionSystem.Instance.SelectedUnit.BaseActionArray) {
Transform actionButtonTransform = Instantiate(ActionButtonPrefab, ActionButtonContainerTransform);
ActionButtonUI actionButtonUI = actionButtonTransform.GetComponent<ActionButtonUI>();
actionButtonUI.SetBaseAction(baseAction);
actionButtonUIList.Add(actionButtonUI);
}
}
private void UpdateSelectedVisual() {
foreach (ActionButtonUI actionButtonUI in actionButtonUIList) {
actionButtonUI.UpdateSelectedVisual();
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

@ -0,0 +1,123 @@
fileFormatVersion: 2
guid: c4244a05043c3134ea013822a57a2931
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
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
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 0
spriteMeshType: 0
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 40, y: 26, z: 40, w: 26}
spriteGenerateFallbackPhysicsShape: 0
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 1537655665
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More