"< 뽑기 미니게임 개선 요청 >
1. 컵히어로와 같이 X2, +발판에 닿으면 실제 수량이 늘어나도록 처리 가능하다면 수정 바랍니다. 2. 우측 예시 이미지와 같이 특정 영역 내에 떨어진 재화만 습득 가능하게 수정 가능할지 문의드립니다. -> 공수가 크지 않다면 가급적 우측 화면같이 특정 영역에 드랍 된 재화만 습득처리하고 나머진 습득 못하게 처리하려고 합니다. 3. 뽑기 미니게임에는 캐릭터를 제거해도 될 것 같습니다."
This commit is contained in:
parent
d6bdbf582e
commit
64f30c4c95
|
|
@ -56,6 +56,7 @@ MonoBehaviour:
|
||||||
m_image: {fileID: 613301010048255497}
|
m_image: {fileID: 613301010048255497}
|
||||||
go_effect: {fileID: 1752936709684462252}
|
go_effect: {fileID: 1752936709684462252}
|
||||||
m_Rigidbody2D: {fileID: 1260999574391235090}
|
m_Rigidbody2D: {fileID: 1260999574391235090}
|
||||||
|
m_Collider2D: {fileID: 1301368102676062178}
|
||||||
velocityThreshold: 0.1
|
velocityThreshold: 0.1
|
||||||
requiredStopDuration: 0.2
|
requiredStopDuration: 0.2
|
||||||
--- !u!222 &2007710277984516474
|
--- !u!222 &2007710277984516474
|
||||||
|
|
|
||||||
|
|
@ -45782,6 +45782,7 @@ RectTransform:
|
||||||
- {fileID: 1757808306}
|
- {fileID: 1757808306}
|
||||||
- {fileID: 1190514304}
|
- {fileID: 1190514304}
|
||||||
- {fileID: 163624062}
|
- {fileID: 163624062}
|
||||||
|
- {fileID: 1693537320}
|
||||||
- {fileID: 2127274534}
|
- {fileID: 2127274534}
|
||||||
- {fileID: 1950932324}
|
- {fileID: 1950932324}
|
||||||
- {fileID: 1534428862}
|
- {fileID: 1534428862}
|
||||||
|
|
@ -45828,6 +45829,7 @@ MonoBehaviour:
|
||||||
tf_cupin: {fileID: 1836599685}
|
tf_cupin: {fileID: 1836599685}
|
||||||
tf_fallobjs: {fileID: 1190514304}
|
tf_fallobjs: {fileID: 1190514304}
|
||||||
tf_refillobjs: {fileID: 163624062}
|
tf_refillobjs: {fileID: 163624062}
|
||||||
|
tf_addobjs: {fileID: 1693537320}
|
||||||
list_randomblock:
|
list_randomblock:
|
||||||
- {fileID: 1007280070}
|
- {fileID: 1007280070}
|
||||||
- {fileID: 233736480}
|
- {fileID: 233736480}
|
||||||
|
|
@ -47745,7 +47747,7 @@ RectTransform:
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90}
|
||||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
m_AnchoredPosition: {x: 0, y: -67.1}
|
m_AnchoredPosition: {x: 0, y: -65}
|
||||||
m_SizeDelta: {x: 25, y: 145}
|
m_SizeDelta: {x: 25, y: 145}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!61 &1299004173
|
--- !u!61 &1299004173
|
||||||
|
|
@ -62835,6 +62837,41 @@ CanvasRenderer:
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 1687355703}
|
m_GameObject: {fileID: 1687355703}
|
||||||
m_CullTransparentMesh: 1
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!1 &1693537319
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1693537320}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: AddObjs
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &1693537320
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1693537319}
|
||||||
|
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: 1257193656}
|
||||||
|
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: 0, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!1 &1695390283
|
--- !u!1 &1695390283
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
@ -72804,7 +72841,7 @@ BoxCollider2D:
|
||||||
m_UsedByEffector: 0
|
m_UsedByEffector: 0
|
||||||
m_CompositeOperation: 0
|
m_CompositeOperation: 0
|
||||||
m_CompositeOrder: 0
|
m_CompositeOrder: 0
|
||||||
m_Offset: {x: 53.40808, y: 0}
|
m_Offset: {x: 65.19798, y: 0}
|
||||||
m_SpriteTilingProperty:
|
m_SpriteTilingProperty:
|
||||||
border: {x: 0, y: 0, z: 0, w: 0}
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
pivot: {x: 0, y: 0}
|
pivot: {x: 0, y: 0}
|
||||||
|
|
@ -72814,7 +72851,7 @@ BoxCollider2D:
|
||||||
drawMode: 0
|
drawMode: 0
|
||||||
adaptiveTiling: 0
|
adaptiveTiling: 0
|
||||||
m_AutoTiling: 0
|
m_AutoTiling: 0
|
||||||
m_Size: {x: 131.81615, y: 205.8}
|
m_Size: {x: 155.39597, y: 205.8}
|
||||||
m_EdgeRadius: 0
|
m_EdgeRadius: 0
|
||||||
--- !u!222 &1957117011
|
--- !u!222 &1957117011
|
||||||
CanvasRenderer:
|
CanvasRenderer:
|
||||||
|
|
@ -72837,6 +72874,7 @@ MonoBehaviour:
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
objectCount: 0
|
objectCount: 0
|
||||||
|
refillobjectCount: 0
|
||||||
--- !u!1 &1957241714
|
--- !u!1 &1957241714
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ public class Game_Lucky : MonoBehaviour
|
||||||
public Transform tf_cupin; // 컵 안 (공들이 들어가는 위치 부모)
|
public Transform tf_cupin; // 컵 안 (공들이 들어가는 위치 부모)
|
||||||
public Transform tf_fallobjs; // 컵 안에서 밖으로 떨어지는 공들의 부모
|
public Transform tf_fallobjs; // 컵 안에서 밖으로 떨어지는 공들의 부모
|
||||||
public Transform tf_refillobjs; // 리필 공들
|
public Transform tf_refillobjs; // 리필 공들
|
||||||
|
public Transform tf_addobjs; // 추가 공들 (+, x 에 의해 추가되는 공들)
|
||||||
|
|
||||||
List<GameObject> list_dropobj = new List<GameObject>();
|
List<GameObject> list_dropobj = new List<GameObject>();
|
||||||
public List<LuckyRandomBlock> list_randomblock;
|
public List<LuckyRandomBlock> list_randomblock;
|
||||||
|
|
@ -60,6 +61,14 @@ public class Game_Lucky : MonoBehaviour
|
||||||
obj.gameObject.SetActive(false);
|
obj.gameObject.SetActive(false);
|
||||||
}
|
}
|
||||||
texts[4].text = $"x{table_GlobalValue.Ins.Get_Int("LuckyGame_RefillAmount")}";
|
texts[4].text = $"x{table_GlobalValue.Ins.Get_Int("LuckyGame_RefillAmount")}";
|
||||||
|
|
||||||
|
// 기본 공 + 리필 공 에 최고 배수만큼 미리 생성
|
||||||
|
var addobjAmount = (TotalBubbleAmount + refill) * 5;
|
||||||
|
for (int i = 0; i < addobjAmount; i++)
|
||||||
|
{
|
||||||
|
var obj = DSUtil.Get_Clone(go_dropobj, tf_addobjs);
|
||||||
|
obj.gameObject.SetActive(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Set()
|
public void Set()
|
||||||
|
|
@ -106,6 +115,8 @@ public class Game_Lucky : MonoBehaviour
|
||||||
if (list_dropobj.Count > TotalBubbleAmount)
|
if (list_dropobj.Count > TotalBubbleAmount)
|
||||||
{
|
{
|
||||||
var moveCount = list_dropobj.Count - TotalBubbleAmount;
|
var moveCount = list_dropobj.Count - TotalBubbleAmount;
|
||||||
|
var maxRefiil = table_GlobalValue.Ins.Get_Int("LuckyGame_RefillAmount") << 1;
|
||||||
|
if (moveCount > maxRefiil) moveCount = maxRefiil;
|
||||||
for (int i = 0; i < moveCount; i++)
|
for (int i = 0; i < moveCount; i++)
|
||||||
{
|
{
|
||||||
list_dropobj[0].transform.SetParent(tf_refillobjs);
|
list_dropobj[0].transform.SetParent(tf_refillobjs);
|
||||||
|
|
@ -114,6 +125,17 @@ public class Game_Lucky : MonoBehaviour
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (list_dropobj.Count > TotalBubbleAmount)
|
||||||
|
{
|
||||||
|
var moveCount = list_dropobj.Count - TotalBubbleAmount;
|
||||||
|
for (int i = 0; i < moveCount; i++)
|
||||||
|
{
|
||||||
|
list_dropobj[0].transform.SetParent(tf_addobjs);
|
||||||
|
list_dropobj[0].gameObject.SetActive(false);
|
||||||
|
list_dropobj.RemoveAt(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
StartCoroutine(Co_Block());
|
StartCoroutine(Co_Block());
|
||||||
|
|
||||||
Set_Ball();
|
Set_Ball();
|
||||||
|
|
@ -281,7 +303,7 @@ public class Game_Lucky : MonoBehaviour
|
||||||
|
|
||||||
public void OnClick_Refill()
|
public void OnClick_Refill()
|
||||||
{
|
{
|
||||||
if (m_RefillCount > 0)
|
if (!isRefill && m_RefillCount > 0)
|
||||||
{
|
{
|
||||||
--m_RefillCount;
|
--m_RefillCount;
|
||||||
m_RefillCount.Obfuscate();
|
m_RefillCount.Obfuscate();
|
||||||
|
|
@ -294,6 +316,7 @@ public class Game_Lucky : MonoBehaviour
|
||||||
{
|
{
|
||||||
isRefill = true;
|
isRefill = true;
|
||||||
tf_cup.rotation = Quaternion.Euler(0, 0, 0);
|
tf_cup.rotation = Quaternion.Euler(0, 0, 0);
|
||||||
|
m_LuckyGameCupCounter.StartRefill();
|
||||||
|
|
||||||
for (int i = 0; i < table_GlobalValue.Ins.Get_Int("LuckyGame_RefillAmount"); i++)
|
for (int i = 0; i < table_GlobalValue.Ins.Get_Int("LuckyGame_RefillAmount"); i++)
|
||||||
{
|
{
|
||||||
|
|
@ -310,6 +333,24 @@ public class Game_Lucky : MonoBehaviour
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
while (m_LuckyGameCupCounter.refillobjectCount < table_GlobalValue.Ins.Get_Int("LuckyGame_RefillAmount"))
|
||||||
|
yield return null;
|
||||||
|
|
||||||
|
m_LuckyGameCupCounter.EndRefill();
|
||||||
isRefill = false;
|
isRefill = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Add_Ball(Vector3 pos)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < tf_addobjs.childCount; i++)
|
||||||
|
{
|
||||||
|
var child = tf_addobjs.GetChild(i);
|
||||||
|
if (!child.gameObject.activeInHierarchy)
|
||||||
|
{
|
||||||
|
list_dropobj.Add(child.gameObject);
|
||||||
|
child.GetComponent<LuckyGameObj>().Init_Add(pos, tf_fallobjs);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -4,12 +4,25 @@ using UnityEngine;
|
||||||
public class LuckyGameCupCounter : MonoBehaviour
|
public class LuckyGameCupCounter : MonoBehaviour
|
||||||
{
|
{
|
||||||
public int objectCount = 0;
|
public int objectCount = 0;
|
||||||
|
public int refillobjectCount = 0;
|
||||||
|
|
||||||
Action<int> m_actcount;
|
Action<int> m_actcount;
|
||||||
|
bool isRefill;
|
||||||
|
|
||||||
public void Set(Action<int> actcount)
|
public void Set(Action<int> actcount)
|
||||||
{
|
{
|
||||||
m_actcount = actcount;
|
m_actcount = actcount;
|
||||||
|
EndRefill();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void StartRefill()
|
||||||
|
{
|
||||||
|
isRefill = true;
|
||||||
|
}
|
||||||
|
public void EndRefill()
|
||||||
|
{
|
||||||
|
refillobjectCount = 0;
|
||||||
|
isRefill = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnTriggerEnter2D(Collider2D other)
|
void OnTriggerEnter2D(Collider2D other)
|
||||||
|
|
@ -18,6 +31,9 @@ public class LuckyGameCupCounter : MonoBehaviour
|
||||||
{
|
{
|
||||||
objectCount++;
|
objectCount++;
|
||||||
m_actcount(objectCount);
|
m_actcount(objectCount);
|
||||||
|
|
||||||
|
if (isRefill)
|
||||||
|
++refillobjectCount;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,9 +7,9 @@ public class LuckyGameObj : MonoBehaviour
|
||||||
public Image m_image;
|
public Image m_image;
|
||||||
public GameObject go_effect;
|
public GameObject go_effect;
|
||||||
public Rigidbody2D m_Rigidbody2D;
|
public Rigidbody2D m_Rigidbody2D;
|
||||||
|
public Collider2D m_Collider2D;
|
||||||
|
|
||||||
ProtectedInt32 m_Amount;
|
bool isInCup, isCollision, isRandomBlock;
|
||||||
bool isInCup, isCollision;
|
|
||||||
public float velocityThreshold = 0.1f; // 이 값 이하이면 "거의 없음"으로 판단
|
public float velocityThreshold = 0.1f; // 이 값 이하이면 "거의 없음"으로 판단
|
||||||
float stoppedTime = 0f;
|
float stoppedTime = 0f;
|
||||||
public float requiredStopDuration = 0.2f; // 0.2초 이상 멈춰야 인정
|
public float requiredStopDuration = 0.2f; // 0.2초 이상 멈춰야 인정
|
||||||
|
|
@ -46,10 +46,22 @@ public class LuckyGameObj : MonoBehaviour
|
||||||
transform.localPosition = pos;
|
transform.localPosition = pos;
|
||||||
tf_fallobjs = tffallobjs;
|
tf_fallobjs = tffallobjs;
|
||||||
|
|
||||||
isCollision = false;
|
isRandomBlock = isCollision = false;
|
||||||
isInCup = m_image.enabled = true;
|
m_Collider2D.enabled = isInCup = m_image.enabled = true;
|
||||||
|
go_effect.SetActive(false);
|
||||||
|
m_Rigidbody2D.bodyType = RigidbodyType2D.Dynamic;
|
||||||
|
}
|
||||||
|
public void Init_Add(Vector3 pos, Transform tffallobjs)
|
||||||
|
{
|
||||||
|
gameObject.SetActive(true);
|
||||||
|
|
||||||
|
transform.parent = tffallobjs;
|
||||||
|
transform.localPosition = pos;
|
||||||
|
tf_fallobjs = tffallobjs;
|
||||||
|
|
||||||
|
isInCup = isCollision = false;
|
||||||
|
isRandomBlock = m_Collider2D.enabled = m_image.enabled = true;
|
||||||
go_effect.SetActive(false);
|
go_effect.SetActive(false);
|
||||||
m_Amount = 1; m_Amount.Obfuscate();
|
|
||||||
m_Rigidbody2D.bodyType = RigidbodyType2D.Dynamic;
|
m_Rigidbody2D.bodyType = RigidbodyType2D.Dynamic;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -71,7 +83,7 @@ public class LuckyGameObj : MonoBehaviour
|
||||||
switch (collision.collider.tag)
|
switch (collision.collider.tag)
|
||||||
{
|
{
|
||||||
case "Player":
|
case "Player":
|
||||||
Set_Collision(m_Amount);
|
Set_Collision(1);
|
||||||
break;
|
break;
|
||||||
case "Finish":
|
case "Finish":
|
||||||
Set_Collision(0);
|
Set_Collision(0);
|
||||||
|
|
@ -84,9 +96,16 @@ public class LuckyGameObj : MonoBehaviour
|
||||||
switch (collision.tag)
|
switch (collision.tag)
|
||||||
{
|
{
|
||||||
case "RandomBlock":
|
case "RandomBlock":
|
||||||
|
if (!isRandomBlock)
|
||||||
|
{
|
||||||
|
isRandomBlock = true;
|
||||||
var lrb = collision.GetComponent<LuckyRandomBlock>();
|
var lrb = collision.GetComponent<LuckyRandomBlock>();
|
||||||
m_Amount = lrb.Get_Value(m_Amount);
|
var addAmount = lrb.Get_Value(1);
|
||||||
m_Amount.Obfuscate();
|
for (int i = 0; i < addAmount - 1; i++)
|
||||||
|
{ // 공 추가하기
|
||||||
|
LobbyUI.Ins.m_Game_Lucky.Add_Ball(transform.localPosition);
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case "LuckyGameCupTrigger":
|
case "LuckyGameCupTrigger":
|
||||||
isInCup = true;
|
isInCup = true;
|
||||||
|
|
@ -96,10 +115,12 @@ public class LuckyGameObj : MonoBehaviour
|
||||||
|
|
||||||
void OnTriggerExit2D(Collider2D other)
|
void OnTriggerExit2D(Collider2D other)
|
||||||
{
|
{
|
||||||
if (other.CompareTag("LuckyGameCupTrigger"))
|
switch (other.tag)
|
||||||
{
|
{
|
||||||
|
case "LuckyGameCupTrigger":
|
||||||
isInCup = false;
|
isInCup = false;
|
||||||
transform.parent = tf_fallobjs;
|
transform.parent = tf_fallobjs;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -108,6 +129,7 @@ public class LuckyGameObj : MonoBehaviour
|
||||||
SoundInfo.Ins.Play_OneShot((eSound)Random.Range(16, 19));
|
SoundInfo.Ins.Play_OneShot((eSound)Random.Range(16, 19));
|
||||||
LobbyUI.Ins.m_Game_Lucky.Add_Amount(amount);
|
LobbyUI.Ins.m_Game_Lucky.Add_Amount(amount);
|
||||||
m_image.enabled = false;
|
m_image.enabled = false;
|
||||||
|
m_Collider2D.enabled = false;
|
||||||
go_effect.SetActive(true);
|
go_effect.SetActive(true);
|
||||||
isCollision = true;
|
isCollision = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue