Commit 61ed9ebc authored by SherryChaos's avatar SherryChaos

fix bug that exclude button can not be clicked

parent 513b6fa4
......@@ -14,13 +14,19 @@ namespace MDPro3.Duel
public class GraveBehaviour : MonoBehaviour
{
public int controller;
BgEffectManager manager;
BoxCollider graveCollider;
BoxCollider excludeCollider;
GameObject grave;
GameObject exclude;
private BgEffectManager manager;
private BoxCollider graveCollider;
private BoxCollider excludeCollider;
private GameObject grave;
private GameObject exclude;
private bool graveCountShowing;
private bool excludeCountShowing;
private bool graveButtonsCreated;
private bool excludeButtonsCreated;
public List<DuelButtonInfo> graveButtons = new();
public List<DuelButton> graveButtonObjs = new();
public List<DuelButtonInfo> excludeButtons = new();
public List<DuelButton> excludeButtonObjs = new();
private void Start()
{
......@@ -35,15 +41,12 @@ namespace MDPro3.Duel
excludeCollider.size = new Vector3(6, 2, 6);
}
bool graveCountShowing;
bool excludeCountShowing;
private void Update()
{
if (UserInput.HoverObject == grave)
{
manager.GetElement<Renderer>("Material01").material.SetFloat("_GraveMouseOver", 1);
if (UserInput.MouseLeftDown)
if (UserInput.MouseLeftPressing)
manager.GetElement<Renderer>("Material01").material.SetFloat("_GravePressButton", 1);
else
manager.GetElement<Renderer>("Material01").material.SetFloat("_GravePressButton", 0);
......@@ -66,7 +69,7 @@ namespace MDPro3.Duel
if (UserInput.HoverObject == exclude)
{
manager.GetElement<Renderer>("Material01").material.SetFloat("_ExcludeMouseOver", 1);
if (UserInput.MouseLeftDown)
if (UserInput.MouseLeftPressing)
manager.GetElement<Renderer>("Material01").material.SetFloat("_ExcludePressButton", 1);
else
manager.GetElement<Renderer>("Material01").material.SetFloat("_ExcludePressButton", 0);
......@@ -77,7 +80,7 @@ namespace MDPro3.Duel
{
manager.GetElement<Renderer>("Material01").material.SetFloat("_ExcludeMouseOver", 0);
manager.GetElement<Renderer>("Material01").material.SetFloat("_ExcludePressButton", 0);
if (UserInput.MouseLeftDown)
if (UserInput.MouseLeftUp)
HideExcludeButtons();
if (excludeCountShowing)
{
......@@ -85,6 +88,7 @@ namespace MDPro3.Duel
Program.instance.ocgcore.GetUI<OcgCoreUI>().HidePlaceCount();
}
}
if (UserInput.HoverObject == grave)
if (!graveCountShowing)
{
......@@ -98,9 +102,8 @@ namespace MDPro3.Duel
Program.instance.ocgcore.GetUI<OcgCoreUI>().ShowLocationCount(new GPS { location = (uint)CardLocation.Removed, controller = (uint)controller });
}
}
bool graveButtonsCreated = false;
bool excludeButtonsCreated = false;
void GraveOnClick()
private void GraveOnClick()
{
AudioManager.PlaySE("SE_DUEL_SELECT");
......@@ -138,7 +141,8 @@ namespace MDPro3.Duel
else
ShowGraveButtons();
}
void ExcludeOnClick()
private void ExcludeOnClick()
{
AudioManager.PlaySE("SE_DUEL_SELECT");
......@@ -147,7 +151,7 @@ namespace MDPro3.Duel
if (Program.instance.ocgcore.returnAction != null)
return;
if (!graveButtonsCreated)
if (!excludeButtonsCreated)
{
bool spsummmon = false;
bool activate = false;
......@@ -177,32 +181,31 @@ namespace MDPro3.Duel
ShowExcludeButtons();
}
void ShowGraveButtons()
private void ShowGraveButtons()
{
foreach (var button in graveButtonObjs)
button.Show();
}
void ShowExcludeButtons()
private void ShowExcludeButtons()
{
foreach (var button in excludeButtonObjs)
button.Show();
}
void HideGraveButtons()
private void HideGraveButtons()
{
foreach (var button in graveButtonObjs)
button.Hide();
}
void HideExcludeButtons()
private void HideExcludeButtons()
{
foreach (var button in excludeButtonObjs)
button.Hide();
}
public List<DuelButtonInfo> graveButtons = new List<DuelButtonInfo>();
public List<DuelButton> graveButtonObjs = new List<DuelButton>();
public List<DuelButtonInfo> excludeButtons = new List<DuelButtonInfo>();
public List<DuelButton> excludeButtonObjs = new List<DuelButton>();
void CreateGraveButtons()
private void CreateGraveButtons()
{
if (graveButtonsCreated || Program.instance.ocgcore.returnAction != null || graveButtons.Count == 0)
return;
......@@ -223,7 +226,8 @@ namespace MDPro3.Duel
}
graveButtonsCreated = true;
}
void CreateExcludeButtons()
private void CreateExcludeButtons()
{
if (excludeButtonsCreated || Program.instance.ocgcore.returnAction != null || excludeButtons.Count == 0)
return;
......@@ -253,6 +257,7 @@ namespace MDPro3.Duel
graveButtons.Clear();
graveButtonsCreated = false;
}
public void ClearExcludeButtons()
{
foreach (var go in excludeButtonObjs)
......@@ -262,6 +267,5 @@ namespace MDPro3.Duel
excludeButtonsCreated = false;
}
}
}
......@@ -62,7 +62,7 @@ namespace MDPro3.UI
StartCoroutine(RefreshIcons());
}
IEnumerator RefreshIcons()
private IEnumerator RefreshIcons()
{
while (TextureManager.container == null)
yield return null;
......@@ -151,7 +151,7 @@ namespace MDPro3.UI
GetComponent<Button>().spriteState = spriteState;
}
void RefreshPosition()
private void RefreshPosition()
{
if (response[0] == -4) // 确认
{
......@@ -223,7 +223,7 @@ namespace MDPro3.UI
transform.DOScale(0, transitionTime);
}
void OnClick()
private void OnClick()
{
AudioManager.PlaySE("SE_DUEL_DECIDE");
......@@ -260,7 +260,7 @@ namespace MDPro3.UI
}
else if (response[0] == -1 || response[0] == -2)
{
List<GameCard> responseCards = new List<GameCard>();
var responseCards = new List<GameCard>();
foreach (var card in OcgCore.cards)
if (card.p.controller == controller)
if ((card.p.location & location) > 0)
......
......@@ -7,6 +7,7 @@ using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using YgomSystem.ElementSystem;
namespace MDPro3.UI
......@@ -64,8 +65,11 @@ namespace MDPro3.UI
if (battlePhase || main2Phase || endPhase)
{
playerMaterial.SetFloat("_Active", 1);
//Click
if (UserInput.HoverObject == collider_.gameObject && UserInput.MouseLeftUp)
if (!EventSystem.current.IsPointerOverGameObject()
&& UserInput.HoverObject == collider_.gameObject
&& UserInput.MouseLeftUp)
{
if (Program.instance.ocgcore.currentPopup == null)
{
......@@ -82,17 +86,25 @@ namespace MDPro3.UI
Program.instance.ocgcore.GetUI<OcgCoreUI>().CardList.Hide();
}
}
if (UserInput.HoverObject == collider_.gameObject && UserInput.MouseLeftDown)
if (!EventSystem.current.IsPointerOverGameObject()
&& UserInput.HoverObject == collider_.gameObject
&& UserInput.MouseLeftPressing)
playerMaterial.SetFloat("_PressButton", 1);
else
playerMaterial.SetFloat("_PressButton", 0);
//MouseOver
if (UserInput.HoverObject == collider_.gameObject && !hover)
if (!EventSystem.current.IsPointerOverGameObject()
&& UserInput.HoverObject == collider_.gameObject
&& !hover)
{
hover = true;
DOTween.To(() => mouseOver, x => mouseOver = x, 1, 0.2f);
}
else if (UserInput.HoverObject != collider_ && hover)
else if (!EventSystem.current.IsPointerOverGameObject()
&& UserInput.HoverObject != collider_
&& hover)
{
hover = false;
DOTween.To(() => mouseOver, x => mouseOver = x, 0, 0.2f);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment