Unity之DrawGizmo-一

Scene下为带有”XX”的组件绘制gizmo

如下例子是为带游戏 “Light”的组件绘制gizmo

如下图所示,创建两个光线组件,当没有选则时Scene如下所示


当选择其中一个光组件时如下所示




在Eidtor文件夹中创建脚本 GimoTest,  引入“using UnityEditor;”
代码如下,写好代码之后保存就结束了,再Hierarchy中选择一个带有“Light”的组件即可,有时选择了带有“Light”的组件也看不到如上效果,需要滑动鼠标滚轮来调整远近来显示


创建一个类

using UnityEngine;
using System.Collections;
using UnityEditor;

public class GimoTest {

    [DrawGizmo(GizmoType.SelectedOrChild)]  	//当自身或者子物体被选中时,自动调用如下方法
   static void MyGizmo(Light light, GizmoType gizmoType)  //参数1为“XX”组件,可以随意选,参数2 必须写,不用赋值
    {
        Gizmos.color = Color.red;   //绘制时颜色
        Gizmos.DrawSphere(light.transform.position, light.range);  //参数1绘制坐标,参数2绘制半径
    }
}




//绘制模式
     [DrawGizmo(GizmoType.SelectedOrChild)] //当自身或子物体被选中
    [DrawGizmo(GizmoType.Active)]          //当被激活
    [DrawGizmo(GizmoType.Selected)]         //当自身被选中
    [DrawGizmo(GizmoType.Selected | GizmoType.Active)]  //当自身被选中或者被激活


如下为给带有 BoxCollider 的对象绘制gizmo

  [DrawGizmo(GizmoType.Active)]
    static void MyGizmo(BoxCollider boxCollider, GizmoType gizmoType) //参数1 为 组件类型,随意选, 
    {
        Debug.Log("gizmos");
        Gizmos.color = Color.red;
        Gizmos.DrawSphere(boxCollider.transform.position, 5);  //参数1 为坐标,参数2 为半径
    }














  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值