IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity3D编辑器拓展学习笔记(八)——在Scene界面拓展 -> 正文阅读

[游戏开发]Unity3D编辑器拓展学习笔记(八)——在Scene界面拓展

最近帮公司的策划写一个用于编辑关卡的工具,工具需要实现在Scene界面可以直接通过点击的方式增加例如:“基地位置”、“出怪点”,再将这些信息存储下来的功能,这样可以节省策划的许多时间与工作量。

但是在开发过程中遇到了一些问题,有许多用于拓展Scene界面的函数与接口,并不止Unity3D的官方文档API中(可能是因为已经过时弃用了?),下面把一些常用的接口记录下来。

在Scene界面绘制,会使用到Handles类,Handles本身是手柄的意思,其实就是Unity中的这个东西

?

绘制到Scene的方式:

void OnEnable() //在OnEnable中订阅这个回调
{
    SceneView.duringSceneGui += OnSceneFunc; //onSceneFunc为你自己的绘制方法
}

static void OnSceneFunc(SceneView view)
{
    //在这里面实现你想要的绘制效果
}

void OnDisable()
{
    SceneView.duringSceneGui -= OnSceneFunc;
}

? ?duringSceneGui:订阅此事件以在 Scene 视图每次调用 OnGUI 方法时接收回调。

Handles类中的常用接口:

1、手柄类(可用于可视化的显示和修改position、rotation、scale)

public static Vector3 DoPositionHandle(Vector3 position, Quaternion rotation); //类似Unity移动的控制器
public static Quaternion DoRotationHandle(Quaternion rotation, Vector3 position);//旋转控制器
public static Vector3 DoScaleHandle(Vector3 scale, Vector3 position, Quaternion rotation, float size); //类似Unity大小的控制器

2、绘制类的

//画线
public static void DrawLine(Vector3 p1, Vector3 p2);
public static void DrawLines(Vector3[] lineSegments);
public static void DrawPolyLine(params Vector3[] points); //多边线
public static void DrawDottedLine(Vector3 p1, Vector3 p2, float screenSpaceSize); //虚线
public static void DrawDottedLines (Vector3[] lineSegments, float screenSpaceSize); //一系列虚线

//标签
public static void Label(Vector3 position, string text);
public static void Label(Vector3 position, Texture image);


//绘制摄像机
public static void DrawCamera(Rect position, Camera camera);

这里只列出部分作为示例,除此之外,还可以绘制多边形、贝塞尔曲线、滑动条等。

官方API:UnityEditor.Handles - Unity 脚本 API (unity3d.com)

---------------------------------------------------------------------------------------------------

更新:后面看了一下API

最新API中使用下面这几个接口来绘制控制器,但是之前的DoPositonHandle、DoRotationHandle、DoScaleHandle仍然可以使用,而且两者没什么区别。

?

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-11-14 22:03:23  更:2021-11-14 22:05:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 22:21:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码