博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
wpf集成unity
阅读量:4657 次
发布时间:2019-06-09

本文共 1649 字,大约阅读时间需要 5 分钟。

定义一个帮助类 实际上就是为了设置以下这两种属性 安全性信任和从html中可见的属性

 即: 在html的javaScript中可用 window.external.方法名来调用C#方法
   [PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
   [ComVisible(true)]
   public class ObjectForScriptingHelper
   {
       MainWindow mExternalWPF;
       public ObjectForScriptingHelper(MainWindow w)
       {
           this.mExternalWPF = w;
       }
       //自己写的方法 显示返回的文字
       public void ChangeText(string message)
       {
           this.mExternalWPF.button1.Content = message;
       }
   }
//WPF window 窗口
  public partial class MainWindow : Window
    {
     
        public MainWindow()
        {
            InitializeComponent();
            //这里定义帮助类 參数是当前window
            ObjectForScriptingHelper helper = new ObjectForScriptingHelper(this);
           //这里定义页面脚本可调用的类对象
            webBrowser1.ObjectForScripting = helper;
        }
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {//载入时候给个链接 链接到unity3d控件
               webBrowser1.Navigate(new Uri(@"N:\Communications\bin\Debug\WebPlayer.html", UriKind.RelativeOrAbsolute));
        } 
    }
-----------------------------------下面是网页内方法------------------------------------------
    <script type="text/javascript">
//这个是给u3d控件调用的方法
        function ShowTestMessage(message) {
            window.external.ChangeText(message);
        }
//这个是外面调用u3d控件的方法
    function ChangeMode() {
          //要传递的參数  这里假设要传递大量參数 我是用XML格式传送的 把类型转换成string 类型的 xml格式 然后u3d内部再转回来直接面向对象操作。

            var mode = 0;
           ( 依据id得到)控件.SendMessage("脚本所在物体名称 PS:能够无论物体所在层次", "要调用的方法名", mode);
            }
  </script>
unity3d中调用外界方法就不说明了  是用Application.ExternalCall 不会的去查u3d手冊
wpf后台调用u3d中方法 就是在wpf中调用 页面中js脚本 然后 得到u3d控件.SendMessage 即可
最初做这个交互的初衷是想做个本地项目 可从指定路径获得新模型样板 然后通过载入数据库数据 载入场景、模型 和保存。
之所以用webbroswer数据加载中实现互动,而不是u3d的winform activex控制 到期 对照后去实现它遇到的几个问题  1.路径来动态地设置这样做  2.设置正确的屏蔽,并没有发现如何切换加载图标集    希望能有答案的朋友给我发短信 凑合完成的项目说。

转载于:https://www.cnblogs.com/hrhguanli/p/4727228.html

你可能感兴趣的文章
RadioButtonList 属性设置
查看>>
Python 基础--Python介绍
查看>>
python爬虫-简单使用xpath下载图片
查看>>
python读取txt里的json文件,存到excel,例子1
查看>>
异常处理
查看>>
BaseDao
查看>>
【codevs1282】约瑟夫问题
查看>>
【codevs1081】线段树练习2
查看>>
作业13——web基础
查看>>
原生JS获取所有标签的数量并统计每个标签的数量
查看>>
slf4j简单使用
查看>>
vue2.0 keep-alive最佳实践
查看>>
Spring Boot入门
查看>>
【OpenCV学习】椭圆拟合
查看>>
探索C#之6.0语法糖剖析
查看>>
练习2.1
查看>>
通过Word发布博客园文章
查看>>
[转]关于语音的一些基本概念
查看>>
HTML杂项和HTML废弃标签
查看>>
21-高级属性之内建方法(2)
查看>>