Add ChildModelSelectorButton marker without default set

This commit is contained in:
FlorianSpeicher
2025-07-17 22:01:10 +02:00
parent 497d5fdac4
commit f8909dedad
4 changed files with 185 additions and 4 deletions

View File

@@ -1546,7 +1546,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -0.00024407906}
m_AnchoredPosition: {x: 7.1, y: -7.5}
m_SizeDelta: {x: -16, y: 0}
m_Pivot: {x: 0, y: 1}
--- !u!114 &103570489
@@ -21018,6 +21018,129 @@ Transform:
m_Children: []
m_Father: {fileID: 661541824}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1193475944
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1193475945}
- component: {fileID: 1193475950}
- component: {fileID: 1193475949}
- component: {fileID: 1193475948}
- component: {fileID: 1193475947}
- component: {fileID: 1193475946}
m_Layer: 0
m_Name: Marker
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &1193475945
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1193475944}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 4}
m_LocalScale: {x: 1.1083075, y: 1.000446, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2135901322}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 150, y: -100}
m_SizeDelta: {x: 280, y: 210}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1193475946
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1193475944}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: afda7b299fd84d59a921179166bf31b1, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &1193475947
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1193475944}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 56549cdaaf4d81e4387b02698fd3daa0, type: 3}
m_Name:
m_EditorClassIdentifier:
borderRadius: {x: 20, y: 20, z: 20, w: 20}
--- !u!114 &1193475948
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1193475944}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 1
m_MinWidth: -1
m_MinHeight: -1
m_PreferredWidth: -1
m_PreferredHeight: -1
m_FlexibleWidth: 1
m_FlexibleHeight: 1
m_LayoutPriority: 1
--- !u!114 &1193475949
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1193475944}
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.63529414, g: 0.63529414, b: 0.63529414, a: 1}
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
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: 1
--- !u!222 &1193475950
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1193475944}
m_CullTransparentMesh: 1
--- !u!1 &1202710445
GameObject:
m_ObjectHideFlags: 0
@@ -25269,6 +25392,7 @@ GameObject:
- component: {fileID: 1470473495}
- component: {fileID: 1470473494}
- component: {fileID: 1470473493}
- component: {fileID: 1470473496}
m_Layer: 0
m_Name: ChildModelPickerPrefab
m_TagString: QDSUIToggleButton
@@ -25383,6 +25507,19 @@ Animator:
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!114 &1470473496
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1470473491}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 47162bb022da405ab82e5dbc2d214716, type: 3}
m_Name:
m_EditorClassIdentifier:
marker: {fileID: 1193475944}
--- !u!1 &1473220097
GameObject:
m_ObjectHideFlags: 0
@@ -38118,6 +38255,7 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1193475945}
- {fileID: 1965107129}
m_Father: {fileID: 1470473492}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

View File

@@ -10,6 +10,7 @@ using Button = UnityEngine.UI.Button;
public class ChildModelSelector : MonoBehaviour, IResettable
{
private List<GameObject> Models = new List<GameObject>();
private List<ChildModelSelectorButton> Buttons = new List<ChildModelSelectorButton>();
public ModelManager modelManager;
public GameObject cmpPrefab; //childModelPickerPrefab (the actual button)
public GameObject daddy;
@@ -46,12 +47,25 @@ public class ChildModelSelector : MonoBehaviour, IResettable
label[0].text = childModel.NameHuman;
label[1].text = "";
}
go.GetComponent<Button>().onClick.AddListener(() => OnClick(childModel));
ChildModelSelectorButton cmsb = go.GetComponent<ChildModelSelectorButton>();
cmsb.AssignModel = () => AssignModel(childModel);
cmsb.RemoveOtherMarkers = RemoveOtherMarkers;
cmsb.Model = childModel;
Models.Add(go);
Buttons.Add(cmsb);
}
}
public void OnClick(ChildModel model)
private void RemoveOtherMarkers()
{
foreach (var cmsb in Buttons)
{
cmsb.marker.SetActive(false);
}
}
public void AssignModel(ChildModel model)
{
modelManager.BaseModelBehaviour.UpdateChild(PortIndex, model.NameId);
@@ -71,6 +85,7 @@ public class ChildModelSelector : MonoBehaviour, IResettable
Destroy(go);
}
Models.Clear();
Buttons.Clear();
}
}

View File

@@ -0,0 +1,25 @@
using System;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.UI;
public class ChildModelSelectorButton : MonoBehaviour
{
public GameObject marker;
public Action RemoveOtherMarkers;
public Action AssignModel;
public ChildModel Model { set; get; }
void Start()
{
this.GetOrAddComponent<Button>().onClick.AddListener(OnClick);
}
public void OnClick()
{
RemoveOtherMarkers();
AssignModel();
marker.SetActive(true);
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 47162bb022da405ab82e5dbc2d214716
timeCreated: 1752781562