unity3D通过点击按钮显示对象

一、实现目标

        通过点击按钮显示对象,再次点击按钮隐藏。

        注:此处我将前文所做的上帝视角,飞行视角,以及人物模型自带的第一人称集合到了一个按钮。

二、实现方法

        第一步:创建三个按钮,准备分别实现上帝视角,飞行视角,以及人物模型自带的第一人称。

        第二步:创建一个Canvas -- ViewButtonsCanvas

第三步:将第一步创建的三个按钮整合到第二步创建的ViewButtonsCanvas中

第四步:创建一个Canvas -- MainButttonCavas,再创建一个Button -- mainButton作为其子类

第五步:创建脚本 -- ShowButtonsOnClicks

//version 0.2
using UnityEngine;
using UnityEngine.UI;

public class ShowButtonsOnClick : MonoBehaviour
{
    public Canvas subButtonsCanvas; // 在Inspector中拖拽包含子按钮的Canvas到这里

    private void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            ToggleSubButtonsCanvas();
        }
    }

    public void ToggleSubButtonsCanvas()
    {
        subButtonsCanvas.gameObject.SetActive(!subButtonsCanvas.gameObject.activeSelf);
    }
}

在 version - 0.2版本中,我发现我点击屏幕的任意地方都能调用ToggleSubButtonsCanvas(),这并不符合我所想的要求,所以我为按钮添加了onClick.AddListener(),从而实现只有点击到button的位置,才能实现显示与隐藏ViewButtonsCanvas。

//version - 0.3
using UnityEngine;
using UnityEngine.UI;

public class ShowButtonsOnClick : MonoBehaviour
{
    public Canvas subButtonsCanvas; // 在Inspector中拖拽包含子按钮的Canvas到这里

    private void Start()
    {
        Button mainButton = GetComponent<Button>(); // 假设这个脚本挂在了您想要响应点击的Button上
        if (mainButton != null)
        {
            mainButton.onClick.AddListener(ToggleSubButtonsCanvas);
        }
        else
        {
            Debug.LogWarning("ShowButtonsOnClick script needs to be attached to a Button or provide a reference to the Button.");
        }
    }

    public void ToggleSubButtonsCanvas()
    {
        subButtonsCanvas.gameObject.SetActive(!subButtonsCanvas.gameObject.activeSelf);
    }
}

三、结果测试 

实现点击Views -- 显示,然后再点击Views,隐藏。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值