You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Unity中用C#代码实现点击按钮开启Prefab定向指示器

实现MRTK定向指示器的按钮控制(默认关闭,点击开启)

1. 设置指示器默认关闭状态

  • 打开你的定向指示器Prefab,在Inspector面板中取消勾选Active,确保实例化后的指示器默认处于关闭状态。
  • 若指示器是直接放置在场景中的,同样在场景视图里关闭它们的Active状态。

2. 编写控制脚本

创建IndicatorController.cs脚本,挂载到任意管理器对象或UI父对象上:

using UnityEngine;
using UnityEngine.UI;

public class IndicatorController : MonoBehaviour
{
    // 在Inspector中分别拖入四个类别的定向指示器对象
    public GameObject fictionIndicator;
    public GameObject scienceIndicator;
    public GameObject historyIndicator;
    public GameObject artIndicator;

    // 小说区按钮触发方法
    public void ToggleFictionIndicator() => ToggleIndicator(fictionIndicator);

    // 科学区按钮触发方法
    public void ToggleScienceIndicator() => ToggleIndicator(scienceIndicator);

    // 历史区按钮触发方法
    public void ToggleHistoryIndicator() => ToggleIndicator(historyIndicator);

    // 艺术区按钮触发方法
    public void ToggleArtIndicator() => ToggleIndicator(artIndicator);

    // 通用开关逻辑:可切换状态,也可改成仅开启
    private void ToggleIndicator(GameObject indicator)
    {
        if (indicator == null) return;
        indicator.SetActive(!indicator.activeSelf);
    }
}

3. 绑定按钮点击事件

  • 选中目标按钮,在Inspector的**On Click()**列表中点击+。
  • 拖拽挂载了IndicatorController的对象到事件对象框。
  • 从下拉菜单选择对应方法(比如IndicatorController -> ToggleFictionIndicator())。
  • 重复操作绑定剩余三个按钮。

可选优化:点击按钮仅开启当前指示器

如果需要点击一个按钮时自动关闭其他指示器,替换上述ToggleIndicator方法为以下逻辑:

private void ActivateOnlyTargetIndicator(GameObject targetIndicator)
{
    // 关闭所有指示器
    fictionIndicator.SetActive(false);
    scienceIndicator.SetActive(false);
    historyIndicator.SetActive(false);
    artIndicator.SetActive(false);

    // 开启目标指示器
    if (targetIndicator != null)
        targetIndicator.SetActive(true);
}

同时将按钮绑定的方法改为对应的ActivateOnlyTargetIndicator重载即可。

关键提醒

  • 确保每个定向指示器的Target属性已正确关联到对应的图书类别GameObject,箭头才能正确指向目标位置。
  • 若通过代码动态实例化指示器,实例化后立即调用instance.SetActive(false)设置默认关闭。

内容的提问来源于stack exchange,提问作者Enzo Bossa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 04:35:18