winform展示Unity3D文件(支持动态改变文件路径)
winform下展示Unity3D文件可以支持对Unity3D实现的模块进行包装,以及在其他的项目中需要展示Unity3D的界面时候,恰到适宜地进行打开展示,这里我展示如何使用winform打开Unity3D文件。
一、在Unity的官网下载并安装Unity
安装完成后的目录如下:


二、在Unity/WebPlayer64/loader-x64文件夹下找到UnityWebPluginAX.ocx文件,然后将其拖动到WindowForm工具箱中。


然后将其拖动到窗体中,并添加一个button作为动态添加Src路径的按钮(UnityWebPlayerControl控件默认不支持动态切换Src,只能初始化的时候默认赋值一个才能打开,这里我们进行一下微操...)。

三、实现一个UnityHelper

using System.Windows.Forms;
namespace Unity3D
{
public class UnityHelper
{
public static AxUnityWebPlayerAXLib.AxUnityWebPlayer CreateUnity(Form form,string src)
{
var unity = new AxUnityWebPlayerAXLib.AxUnityWebPlayer();
((System.ComponentModel.ISupportInitialize)(unity)).BeginInit();
form.Controls.Add(unity);
((System.ComponentModel.ISupportInitialize)(unity)).EndInit();
unity.src = src;
AxHost.State state = unity.OcxState;
unity.Dispose();
unity = new AxUnityWebPlayerAXLib.AxUnityWebPlayer();
((System.ComponentModel.ISupportInitialize)(unity)).BeginInit();
form.SuspendLayout();
unity.Dock = DockStyle.Fill;
unity.Name = "Unity";
unity.OcxState = state;
unity.TabIndex = ;
((System.ComponentModel.ISupportInitialize)(unity)).EndInit();
form.ResumeLayout(false);
return unity;
}
}
}
然后在Form1.cs中写下简单的调用代码
using System;
using System.Windows.Forms;
namespace Unity3D.NETFramework461
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string src = Application.StartupPath+@"/Unity3dFiles/trans.unity3d";
var unity = UnityHelper.CreateUnity(this,src);
Form form = new Form();
form.Controls.Add(unity);
form.Show();
}
}
}
在项目bin/Debug目录下任意放一个Unity文件,这里我随便找了一个
trans.unity3d

四、最后我们运行测试一下->

点击按钮

可以看到我们的代码完美运行,并且在新窗口打开一个Unity文件。
如果想在原来的控件中显示,直接赋值给一个Src即可,如果想动态改变,那么直接动态操作控件即可...
winform展示Unity3D文件(支持动态改变文件路径)的更多相关文章
- ASP.NET Core 返回文件、用户下载文件,从网站下载文件,动态下载文件
ASP.NET Core 中,可以在静态目录添加文件,直接访问就可以下载.但是这种方法可能不安全,也不够灵活. 我们可以在 Controller 控制器中 添加 一个 Action,通过此Action ...
- .h头文件 .lib库文件 .dll动态库文件之间的关系
.h头文件是编译时必须的,lib是链接时需要的,dll是运行时需要的. 附加依赖项的是.lib不是.dll,若生成了DLL,则肯定也生成 LIB文件.如果要完成源代码的编译和链接,有头文件和lib就够 ...
- 让您的WinForm控件快速支持拖拽文件
实现原理:使用扩展方法. /// <summary> /// 控件扩展 /// </summary> public static class ControlExt { /// ...
- linux共享windows文件并自动化改变文件编码
以k3日志为例: 在k3的数据库服务器进行如下操作: 1.在k3的数据库服务器导出日志数据到本地D:/K3LOG下(脚本自动化执行) 2.设置脚本定时任务每天拷贝D:/K3LOG下的文件到D:/K3L ...
- 从零开始编写动态库文件Makefile,C++版
这篇文章前,假设你已经看过<跟我一起写Makefile(一)>,陈皓写的那个. 对现有的一个C++动态库文件和调用程序,分别编写Makefile文件,从零开始,花了四天时间才搞清楚一半,生 ...
- iOS 获取真机上系统动态库文件
iOS 获取真机上所有系统库文件 系统动态库文件存放真机地址(/System/Library/Caches/com.apple.dyld/dyld_shared_cache_arm64) 在Mac\i ...
- 计算机程序的思维逻辑 (64) - 常见文件类型处理: 属性文件/CSV/EXCEL/HTML/压缩文件
对于处理文件,我们介绍了流的方式,57节介绍了字节流,58节介绍了字符流,同时,也介绍了比较底层的操作文件的方式,60节介绍了随机读写文件,61节介绍了内存映射文件,我们也介绍了对象的序列化/反序列化 ...
- Java编程的逻辑 (64) - 常见文件类型处理: 属性文件/CSV/EXCEL/HTML/压缩文件
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...
- 在Winform界面菜单中实现动态增加【最近使用的文件】菜单项
在我们一些和文件处理打交道的系统中,我们往往需要记录下最近使用的文件,这样方便用户快速打开之前浏览或者编辑过的文件,这种在很多软件上很常见,本文主要介绍在Winform界面菜单中实现[最近使用的文件] ...
随机推荐
- Backbone简单示例
要的资源: <script type="text/javascript" src="../dep/underscore-1.6.0.min.js"> ...
- Golang学习--TOML配置处理
上一篇文章中我们学会了使用包管理工具,这样我们就可以很方便的使用包管理工具来管理我们依赖的包. 配置工具的选择 但我们又遇到了一个问题,一个项目通常是有很多配置的,比如PHP的php.ini文件.Ng ...
- Winform开发中如何将数据库字段绑定到ComboBox控件
最近开始自己动手写一个财务分析软件,由于自己也是刚学.Net不久,所以自己写的的时候遇到了很多问题,希望通过博客把一些印象深刻的问题记录下来. Winform开发中如何将数据库字段绑定到ComboBo ...
- 分享一波eclipse常用快捷键
Eclipse快捷键 一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合.通过这些组合可以更加容易的浏览源代码,使得整体的开发效率和质量得到提升. 1. ctrl+shift ...
- hadoop多文件格式输入
版本号: CDH5.0.0 (hdfs:2.3.mapreduce:2.3,yarn:2.3) hadoop多文件格式输入,一般能够使用MultipleInputs类指定不同的输入文件路径以及输入文件 ...
- cocos2d-x3.6 连连看完整源代码
我的博客:http://blog.csdn.net/dawn_moon 好了,这个连连看是用最新版cocos2d-x 3.6版写的,里面使用了非常多新特性. 基本完工了.另一个积分和关卡没有做.有兴趣 ...
- nyist oj 756 重建二叉树
重建二叉树 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描写叙述 题目非常easy.给你一棵二叉树的后序和中序序列,求出它的前序序列(So easy!). 输入 输入有多组 ...
- RxJava开发精要6 - 组合Observables
原文出自<RxJava Essentials> 原文作者 : Ivan Morgillo 译文出自 : 开发技术前线 www.devtf.cn 转载声明: 本译文已授权开发人员头条享有独家 ...
- hdu5353 Average
Problem Description There are n soda sitting around a round table. soda are numbered from 1 to n and ...
- Struts2学习笔记整理(三)
Struts2的输入校验 之前对请求参数的输入校验一般分为两部分:1.客户端校验,也就是我们写js代码去对客户的误操作进行过滤 2.服务端校验, 这是整个应用组织非法数据的最后防线. Struts2 ...