로비 botmenu 애님

This commit is contained in:
Ino 2025-01-10 10:18:33 +09:00
parent 3de56adf2e
commit f87efd28de
2 changed files with 228 additions and 14 deletions

View File

@ -1726,6 +1726,96 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &230632775684196528
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 288084172194771993}
- component: {fileID: 2649292944399785029}
- component: {fileID: 52555683443523375}
- component: {fileID: 2250254578025718475}
m_Layer: 5
m_Name: Viewport
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &288084172194771993
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 230632775684196528}
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:
- {fileID: 4546882025923078743}
m_Father: {fileID: 3239032025348355019}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 1}
--- !u!222 &2649292944399785029
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 230632775684196528}
m_CullTransparentMesh: 1
--- !u!114 &52555683443523375
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 230632775684196528}
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: 1, g: 1, b: 1, 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: 65f581562538e304cbbfe8ee3beab09c, 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: 1
--- !u!114 &2250254578025718475
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 230632775684196528}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3}
m_Name:
m_EditorClassIdentifier:
m_ShowMaskGraphic: 0
--- !u!1 &231750566656321776
GameObject:
m_ObjectHideFlags: 0
@ -15844,7 +15934,7 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1738194743749524113}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
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
@ -15853,11 +15943,11 @@ RectTransform:
- {fileID: 7667312995523209903}
- {fileID: 382330358059753916}
- {fileID: 8295776365815767436}
m_Father: {fileID: 4670786236948560329}
m_Father: {fileID: 288084172194771993}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -188.2, y: 92.3}
m_AnchoredPosition: {x: -0.0008239746, y: -0.000289917}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &6073836825621844675
@ -15873,7 +15963,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 0
m_Left: -257
m_Right: 0
m_Top: 0
m_Bottom: 0
@ -50240,7 +50330,7 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5628033596425043958}
- {fileID: 4546882025923078743}
- {fileID: 3239032025348355019}
m_Father: {fileID: 2931286266799411332}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0}
@ -50261,7 +50351,9 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
go_Camera: {fileID: 0}
tf_layout: {fileID: 4546882025923078743}
rtf_onoff: {fileID: 5628033596425043958}
rtf_layout: {fileID: 4546882025923078743}
m_layout: {fileID: 6073836825621844675}
--- !u!1 &5051286401690443021
GameObject:
m_ObjectHideFlags: 0
@ -79134,6 +79226,82 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_localtextKey: 296
--- !u!1 &8146651848587170604
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3239032025348355019}
- component: {fileID: 4886195220926575564}
- component: {fileID: 8655065850031674027}
m_Layer: 5
m_Name: Scroll View
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3239032025348355019
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8146651848587170604}
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:
- {fileID: 288084172194771993}
m_Father: {fileID: 4670786236948560329}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 63.88, y: 94}
m_SizeDelta: {x: 534.29, y: 128.62}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4886195220926575564
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8146651848587170604}
m_CullTransparentMesh: 1
--- !u!114 &8655065850031674027
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8146651848587170604}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Content: {fileID: 4546882025923078743}
m_Horizontal: 1
m_Vertical: 0
m_MovementType: 1
m_Elasticity: 0.1
m_Inertia: 1
m_DecelerationRate: 0.135
m_ScrollSensitivity: 1
m_Viewport: {fileID: 288084172194771993}
m_HorizontalScrollbar: {fileID: 0}
m_VerticalScrollbar: {fileID: 0}
m_HorizontalScrollbarVisibility: 2
m_VerticalScrollbarVisibility: 2
m_HorizontalScrollbarSpacing: -3
m_VerticalScrollbarSpacing: -3
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
--- !u!1 &8150718138861807147
GameObject:
m_ObjectHideFlags: 0
@ -85728,7 +85896,6 @@ MonoBehaviour:
m_BattleUI: {fileID: 2351113276399051383}
arr_PetCard:
- {fileID: 5800997328715883900}
go_quickmenu: {fileID: 5040239726474730018}
FarmMenu:
- {fileID: 2229716252797852782}
- {fileID: 3479054844949023046}
@ -89368,7 +89535,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 46.2, y: -177.6}
m_AnchoredPosition: {x: 46.19995, y: -177.59998}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &4823950854918263793
@ -90538,13 +90705,13 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9196446261128169687}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4670786236948560329}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: -266.50003, y: 87.40001}

View File

@ -1,10 +1,14 @@
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
public class BotMenu : MonoBehaviourSingletonTemplate<BotMenu>
{
public Transform tf_layout;
public RectTransform rtf_onoff, rtf_layout;
public HorizontalLayoutGroup m_layout;
bool bOn = true;
private bool bOn = true; // 현재 상태 (On/Off)
private bool isAnimating = false; // 애니메이션 진행 여부 확인
private void OnEnable()
{
@ -13,12 +17,55 @@ public class BotMenu : MonoBehaviourSingletonTemplate<BotMenu>
void Set_OnOff()
{
for (int i = 0; i < tf_layout.childCount; i++)
tf_layout.GetChild(i).gameObject.SetActive(bOn);
// 애니메이션이 이미 진행 중이라면 실행하지 않음
if (isAnimating) return;
StartCoroutine(Co_OnOff());
}
IEnumerator Co_OnOff()
{
isAnimating = true; // 애니메이션 시작
var targetValue = bOn ? -257 : -800; // 목표 값
var startValue = m_layout.padding.left; // 시작 값
var duration = 0.15f; // 애니메이션 시간
var elapsedTime = 0f;
// 초기 회전 값과 목표 회전 값 설정
var startRotation = rtf_onoff.localEulerAngles.z;
var targetRotation = bOn ? -90f : 90f;
while (elapsedTime < duration)
{
elapsedTime += Time.deltaTime;
var t = Mathf.Clamp01(elapsedTime / duration);
// 선형 보간으로 padding.left 값을 업데이트
var newValue = Mathf.Lerp(startValue, targetValue, t);
m_layout.padding.left = Mathf.RoundToInt(newValue);
LayoutRebuilder.ForceRebuildLayoutImmediate(rtf_layout);
// 선형 보간으로 회전값 업데이트
var newRotation = Mathf.LerpAngle(startRotation, targetRotation, t);
rtf_onoff.localEulerAngles = new Vector3(rtf_onoff.localEulerAngles.x, rtf_onoff.localEulerAngles.y, newRotation);
// 변경된 값을 레이아웃에 반영
m_layout.CalculateLayoutInputHorizontal();
yield return null;
}
// 최종 값 설정
m_layout.padding.left = targetValue;
rtf_onoff.localEulerAngles = new Vector3(rtf_onoff.localEulerAngles.x, rtf_onoff.localEulerAngles.y, targetRotation);
LayoutRebuilder.ForceRebuildLayoutImmediate(rtf_layout);
isAnimating = false; // 애니메이션 종료
}
public void OnClick_OnOff()
{
// 상태를 토글하고 애니메이션 시작
bOn = !bOn;
Set_OnOff();
}