랜덤블럭 작업 중...

This commit is contained in:
Ino 2025-09-13 05:45:21 +09:00
parent 143ccc2bab
commit 382007047e
6 changed files with 454 additions and 6 deletions

View File

@ -1648,6 +1648,81 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 4848326f7db925d4fbcdb35f789b75f5, type: 3} m_Script: {fileID: 11500000, guid: 4848326f7db925d4fbcdb35f789b75f5, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
--- !u!1 &263107106
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 263107107}
- component: {fileID: 263107109}
- component: {fileID: 263107108}
m_Layer: 5
m_Name: block
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &263107107
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 263107106}
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: 1007280066}
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.5, y: 0.5}
--- !u!114 &263107108
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 263107106}
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: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: b0a7567624709ee45872c0e655845f2d, type: 3}
m_Type: 0
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 &263107109
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 263107106}
m_CullTransparentMesh: 1
--- !u!1 &272342316 --- !u!1 &272342316
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -7099,6 +7174,142 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 915269245} m_GameObject: {fileID: 915269245}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!1 &949095340
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 949095341}
- component: {fileID: 949095343}
- component: {fileID: 949095342}
m_Layer: 5
m_Name: t_value
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &949095341
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 949095340}
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: 1007280066}
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: 0, y: 0}
m_SizeDelta: {x: 200, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &949095342
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 949095340}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, 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_text: +0
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 3055b5c28f94e6c4ea6b9a379bb315a5, type: 2}
m_sharedMaterial: {fileID: 2100000, guid: f0e824099790d3445af94a5b86b5cc4a, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 50
m_fontSizeBase: 50
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 25
m_fontSizeMax: 100
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 4096
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!222 &949095343
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 949095340}
m_CullTransparentMesh: 1
--- !u!1 &949261338 --- !u!1 &949261338
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -7799,6 +8010,118 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1005841922} m_GameObject: {fileID: 1005841922}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!1 &1007280065
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1007280066}
- component: {fileID: 1007280070}
- component: {fileID: 1007280068}
- component: {fileID: 1007280069}
m_Layer: 5
m_Name: LuckyRandomBlock
m_TagString: RandomBlock
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1007280066
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1007280065}
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: 263107107}
- {fileID: 949095341}
m_Father: {fileID: 2127274534}
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: 0, y: 0}
m_SizeDelta: {x: 122.2, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!61 &1007280068
BoxCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1007280065}
m_Enabled: 1
serializedVersion: 3
m_Density: 1
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_ForceSendLayers:
serializedVersion: 2
m_Bits: 4294967295
m_ForceReceiveLayers:
serializedVersion: 2
m_Bits: 4294967295
m_ContactCaptureLayers:
serializedVersion: 2
m_Bits: 4294967295
m_CallbackLayers:
serializedVersion: 2
m_Bits: 4294967295
m_IsTrigger: 1
m_UsedByEffector: 0
m_CompositeOperation: 0
m_CompositeOrder: 0
m_Offset: {x: 0, y: 0}
m_SpriteTilingProperty:
border: {x: 0, y: 0, z: 0, w: 0}
pivot: {x: 0, y: 0}
oldSize: {x: 0, y: 0}
newSize: {x: 0, y: 0}
adaptiveTilingThreshold: 0
drawMode: 0
adaptiveTiling: 0
m_AutoTiling: 0
m_Size: {x: 122.2, y: 100}
m_EdgeRadius: 0
--- !u!114 &1007280069
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1007280065}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 970655c7570620b4b81080ce46bbd866, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &1007280070
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1007280065}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f64d4b082a41a9e42804e2ddfb768398, type: 3}
m_Name:
m_EditorClassIdentifier:
i_bg: {fileID: 263107108}
t_value: {fileID: 949095342}
--- !u!1 &1028843972 --- !u!1 &1028843972
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -9460,6 +9783,7 @@ RectTransform:
- {fileID: 1999037950} - {fileID: 1999037950}
- {fileID: 48983097} - {fileID: 48983097}
- {fileID: 1757808306} - {fileID: 1757808306}
- {fileID: 2127274534}
- {fileID: 1950932324} - {fileID: 1950932324}
m_Father: {fileID: 48693080} m_Father: {fileID: 48693080}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -9486,6 +9810,7 @@ MonoBehaviour:
go_dropobj: {fileID: 6939998903098416576, guid: 762ff4ec5a22c6b45978c6b031b0e7e5, type: 3} go_dropobj: {fileID: 6939998903098416576, guid: 762ff4ec5a22c6b45978c6b031b0e7e5, type: 3}
tf_cup: {fileID: 995025953} tf_cup: {fileID: 995025953}
tf_cupin: {fileID: 1836599685} tf_cupin: {fileID: 1836599685}
temp: {fileID: 1007280070}
--- !u!1 &1292285443 --- !u!1 &1292285443
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -16799,6 +17124,42 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 418.31} m_AnchoredPosition: {x: 0, y: 418.31}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &2127274533
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2127274534}
m_Layer: 5
m_Name: RandomBlock
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2127274534
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2127274533}
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: 1007280066}
m_Father: {fileID: 1257193656}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: 0, y: 330}
m_SizeDelta: {x: 0, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &2139838681 --- !u!1 &2139838681
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -12,6 +12,7 @@ public class Game_Lucky : MonoBehaviour
public Transform tf_cupin; // 컵 안 (공들이 들어가는 위치 부모) public Transform tf_cupin; // 컵 안 (공들이 들어가는 위치 부모)
List<GameObject> list_dropobj = new List<GameObject>(); List<GameObject> list_dropobj = new List<GameObject>();
public LuckyRandomBlock temp;
// 회전 관련 변수 // 회전 관련 변수
private bool isRotating = false; private bool isRotating = false;
@ -46,6 +47,8 @@ public class Game_Lucky : MonoBehaviour
} }
} }
temp.Set();
Set_Ball(); Set_Ball();
Init_game(); Init_game();
Set_Texts(); Set_Texts();

View File

@ -54,6 +54,18 @@ public class LuckyGameObj : MonoBehaviour
} }
} }
private void OnTriggerEnter2D(Collider2D collision)
{
switch (collision.tag)
{
case "RandomBlock":
var lrb = collision.GetComponent<LuckyRandomBlock>();
m_Amount = lrb.Get_Value(m_Amount);
m_Amount.Obfuscate();
break;
}
}
void Set_Collision(int amount) void Set_Collision(int amount)
{ {
LobbyUI.Ins.m_Game_Lucky.Add_Amount(amount); LobbyUI.Ins.m_Game_Lucky.Add_Amount(amount);

View File

@ -0,0 +1,54 @@
using GUPS.AntiCheat.Protected;
using GUPS.AntiCheat.Protected.Collection;
using System;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
using Random = UnityEngine.Random;
public enum eRandomBlock { Minus, Plus, Multiplier, Divide }
public class LuckyRandomBlock : MonoBehaviour
{
public Image i_bg;
public TextMeshProUGUI t_value;
eRandomBlock m_BlockType;
ProtectedInt32 m_Value;
float MoveSpeed;
ProtectedList<Int32> list_value = new ProtectedList<Int32> { 1, 2, 3, 4, 5 };
public void Set()
{
// BlockType 랜덤 (Enum 전체 범위에서 선택)
int typeCount = Enum.GetValues(typeof(eRandomBlock)).Length;
m_BlockType = (eRandomBlock)Random.Range(0, typeCount);
// Value 랜덤 (리스트에서 하나 뽑기)
int randIndex = Random.Range(0, list_value.Count);
m_Value = list_value[randIndex];
switch (m_BlockType)
{
case eRandomBlock.Minus: t_value.text = $"-{m_Value}"; i_bg.color = Color.red; break;
case eRandomBlock.Plus: t_value.text = $"+{m_Value}"; i_bg.color = Color.blue; break;
case eRandomBlock.Multiplier: t_value.text = $"x{m_Value}"; i_bg.color = Color.green; break;
case eRandomBlock.Divide: t_value.text = $"/{m_Value}"; i_bg.color = Color.grey; break;
}
MoveSpeed = Random.Range(2f, 5f);
}
public int Get_Value(int amount)
{
switch (m_BlockType)
{
case eRandomBlock.Minus: return amount - m_Value;
case eRandomBlock.Plus: return amount + m_Value;
case eRandomBlock.Multiplier: return amount * m_Value;
case eRandomBlock.Divide: return amount / m_Value;
}
return 0;
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: f64d4b082a41a9e42804e2ddfb768398

View File

@ -1,18 +1,24 @@
using UnityEngine; using UnityEngine;
[ExecuteAlways]
[RequireComponent(typeof(RectTransform))] [RequireComponent(typeof(RectTransform))]
[RequireComponent(typeof(BoxCollider2D))] [RequireComponent(typeof(BoxCollider2D))]
public class MatchRectToCollider : MonoBehaviour public class MatchRectToCollider : MonoBehaviour
{ {
RectTransform rt;
BoxCollider2D col;
void Awake()
{
rt = GetComponent<RectTransform>();
col = GetComponent<BoxCollider2D>();
}
void UpdateCollider() void UpdateCollider()
{ {
RectTransform rt = GetComponent<RectTransform>(); if (rt == null || col == null) return;
BoxCollider2D col = GetComponent<BoxCollider2D>();
// RectTransform의 크기를 collider size로 적용
col.size = rt.rect.size; col.size = rt.rect.size;
// pivot 때문에 위치가 달라질 수 있으므로 offset 조정
col.offset = rt.rect.center; col.offset = rt.rect.center;
} }
@ -21,9 +27,19 @@ public class MatchRectToCollider : MonoBehaviour
UpdateCollider(); UpdateCollider();
} }
// 에디터에서 값 바뀔 때도 자동 반영 void Update()
{
if (rt.hasChanged)
{
UpdateCollider();
rt.hasChanged = false;
}
}
void OnValidate() void OnValidate()
{ {
rt = GetComponent<RectTransform>();
col = GetComponent<BoxCollider2D>();
UpdateCollider(); UpdateCollider();
} }
} }