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

如何创建仅在Scene视图可见、Game视图不可见的GameObject?

实现运行时Scene视图可见、Game视图不可见的出生点/寻路标记

方法1:用Gizmos绘制自定义标记(最推荐)

给每个出生点/寻路目标GameObject挂个简单脚本,就能在Scene视图显示自定义标记,Game视图完全看不到:

using UnityEngine;

public class SpawnMarker : MonoBehaviour
{
    public Sprite customIcon; // 可在Inspector拖入自定义图标
    public float markerSize = 1f;
    public Color markerColor = Color.green;

    void OnDrawGizmos()
    {
        Gizmos.color = markerColor;
        if (customIcon != null)
        {
            Gizmos.DrawIcon(transform.position, customIcon.name, true, markerColor);
        }
        else
        {
            // 没自定义图标就画个绿色立方体
            Gizmos.DrawCube(transform.position, Vector3.one * markerSize);
        }
    }
}
  • 不管游戏跑没跑,Scene视图都会显示标记;Game视图默认不渲染Gizmos,所以完全看不到。
  • 好处:不影响任何游戏逻辑,标记样式随便改,还能在编辑模式和运行时都看到。

方法2:用Layer控制相机渲染

不想写脚本的话,用Layer过滤也能搞定:

  • 新建一个Layer,比如叫SpawnPoints
  • 把所有标记对象的Layer改成这个
  • 找到主相机,在Camera组件的Culling Mask里取消勾选SpawnPoints层
  • 确保Scene视图的Layer过滤没隐藏这个层(右上角Layers下拉菜单勾上SpawnPoints)
  • 注意:如果标记对象本身带MeshRenderer这类渲染组件,主相机会直接忽略它;要是没渲染组件,其实和方法1效果差不多。

方法3:直接禁用渲染组件

如果标记对象有MeshRenderer之类的东西,直接关掉就行:

  • 选中对象,在Inspector里找到渲染组件(比如MeshRenderer),取消勾选启用
  • Game视图不会渲染它,但Scene视图还是会显示对象的变换控件和默认Gizmos
  • 缺点:想要自定义标记样式的话,还是得配合方法1的脚本。

内容的提问来源于stack exchange,提问作者Matthew Dryden

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 06:20:25