基于Unity的编辑器开发(一): GUI框架技术

本文探讨了如何在Unity中开发一个关卡编辑器,以满足外部用户使用的需要。作者面临的技术挑战包括如何在不修改Unity源码的情况下与外部UI框架交互。文中介绍了使用Unity的`-parentHWND`参数将游戏嵌入到GUI窗口,选择了Winforms作为UI框架,并探讨了Docking解决方案,如DockPanel Suite和DarkUI。此外,文章还讨论了PropertyGrid在属性编辑中的应用,以及AdamsLair.WinForms控件库在Duality项目中的表现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求背景

用Unity开发的游戏, 需要做个关卡编辑器. 如果只是内部用用, 其实直接扩展Unity就够了; 但问题是需要发布给外部的用户使用, 那么总不能把全套资源和Unity发给他们, 所以就诞生了这么个奇葩需求.

技术挑战

  • 既然用了Unity引擎, 那么渲染肯定还是用Unity, 怎么在外面套一堆UI面板?
  • UI需要使用传统的方式来开发, 什么Qt/Winforms/WPF/Web等, 用Unity内置的UI也是一个思路
  • 游戏内的逻辑基本都在mono虚拟机上跑, 外面再搞一套UI逻辑的话, 怎么做到公共代码的复用?
  • Unity在不改源码的情况下没法直接跟外部的UI框架逻辑互调, 所以需要进程间通信
  • 在跨进程的情况下, 怎么做到比较方便的方法调用和属性编辑?

GUI框架技术

Unity渲染窗口

问题就是怎么把Unity嵌入到现有的一些GUI窗口中? 搜索一下已经有人问过了:
https://answers.unity.com/questions/871077/how-to-display-unity-scene-in-a-qt-window.html
https://stackoverflow.com/questions/44059182/embed-unity3d-app-inside-wpf-application

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值