using UnityEngine;
using UnityEngine.UI;
using System.Collections;
///
/// 多层Canvas测试工具
/// 用于测试MainPanel在多层Canvas环境下的BodyAndOrgans可见性控制
///
public class MultiLayerCanvasTest : MonoBehaviour
{
[Header("测试Canvas")]
public Canvas[] TestCanvases;
[Header("控制按钮")]
public Button CreateOverlayButton;
public Button RemoveOverlayButton;
public Button ToggleCanvasOrderButton;
public Button DebugInfoButton;
[Header("信息显示")]
public Text StatusText;
public InputField SortingOrderInput;
private MainPanel mainPanel;
private int overlayCounter = 0;
void Start()
{
// 查找MainPanel
mainPanel = FindObjectOfType();
// 设置按钮事件
if (CreateOverlayButton != null)
CreateOverlayButton.onClick.AddListener(CreateOverlayCanvas);
if (RemoveOverlayButton != null)
RemoveOverlayButton.onClick.AddListener(RemoveLastOverlay);
if (ToggleCanvasOrderButton != null)
ToggleCanvasOrderButton.onClick.AddListener(ToggleCanvasOrder);
if (DebugInfoButton != null)
DebugInfoButton.onClick.AddListener(LogAllCanvasInfo);
UpdateStatusDisplay();
}
///
/// 创建覆盖Canvas
///
public void CreateOverlayCanvas()
{
overlayCounter++;
// 创建新的Canvas GameObject
GameObject overlayObj = new GameObject($"TestOverlay_{overlayCounter}");
Canvas overlayCanvas = overlayObj.AddComponent