根据项目的需要,对已经完成的Unity三维模型以及游戏要使用Winform进行包装,也就是使用Winform做一层外壳。因此在展示Unity的时候使用到了UnityWebPlayer这个插件,对于此插件就不多说了,无论是想把Unity嵌在网页中还是winform中都要使用到。 ...
根据项目的需要,对已经完成的Unity三维模型以及游戏要使用Winform进行包装,也就是使用Winform做一层外壳。因此在展示Unity的时候使用到了UnityWebPlayer这个插件,对于此插件就不多说了,无论是想把Unity嵌在网页中还是get='_blank'>winform中都要使用到。
网上很多资料是在Web中使用Unity的,很自然的把Unity发布成Web类型,在此如何在Web中使用Unity也就不多说了,重点是解决在winform中使用Unity出现的插件自带的右键问题以及Logo问题。
一、winform中使用Unity
在winform中使用Unity,同样是像网页形式把做好的Unity发布成Web类型,然后直接使用文件格式为.unity3d的文件。把Unity文件的路径赋值给UnityWebplayer的src属性即可,对于动态赋值,从网上找到如下方法:
/// <summary> /// 实例化UnitywebPlayer控件并添加到界面上 /// </summary> /// <param name="panel">承载unity的控件</param> /// <param name="unityfileServerpath">服务端路径</param> public void BindUnity(Panel panel,string unityfileServerpath) { if (panel.Controls.Count > 0) { panel.Controls[0].Dispose(); } panel.Controls.Clear(); ///指定空的Unity3D,用来做外壳 string unityfilepath = Application.StartupPath + unityfileServerpath;//"/U3D/LoadAsset.unity3d"; unityex = new UnityWebPlayerEx(); ((System.ComponentModel.ISupportInitialize)(unityex)).BeginInit(); this.Controls.Add(unityex); ((System.ComponentModel.ISupportInitialize)(unityex)).EndInit(); unityex.src = unityfilepath; AxHost.State state = unityex.OcxState; unityex.Dispose(); unityex = new UnityWebPlayerEx(); ((System.ComponentModel.ISupportInitialize)(unityex)).BeginInit(); this.SuspendLayout(); unityex.Dock = DockStyle.Fill; unityex.Name = "Unityex"; unityex.OcxState = state; unityex.TabIndex = 0; unityex.DisableContextMenu = true; unityex.OnExternalCall += new AxUnityWebPlayerAXLib._DUnityWebPlayerAXEvents_OnExternalCallEventHandler(unityex_OnExternalCall); panel.Controls.Add(unityex); ((System.ComponentModel.ISupportInitialize)(unityex)).EndInit(); this.ResumeLayout(false); }
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:在Winform中屏蔽UnityWebPlayer的右键以及自带Logo解决方案整理
关键词:web
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。