定义一个帮助类 实际上就是为了设置以下这两种属性 安全性信任和从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.设置正确的屏蔽,并没有发现如何切换加载图标集    希望能有答案的朋友给我发短信 凑合完成的项目说。

wpf集成unity的更多相关文章

  1. Xcode中如何集成Unity

    项目中需要集成unity,摸索了大半周,碰到了很多坑,终于搞定. 我的方法是,通过unity导出一个空的iOS项目,然后再新建一个Xcode项目,针对配置页面一一对应.直到配置完全一样,然后倒入相关资 ...

  2. 使用C#进行应用程序间通信(WPF与Unity通信)

    首先程序主体来自网络,我只是应用在我自己的项目中,其中出现了一系列的问题,有些已经解决,有些使用了折中的方案,如果有大神能够给予知道,感激不尽! 首先是发送端程序: 这是我的程序任务执行主界面,此处已 ...

  3. 安卓集成Unity开发示例(一)

    本项目目的是在移动端的 Native App 中以库的形式集成已经写好的 Unity 工程,利用 Unity 游戏引擎便捷的开发手段进行跨平台开发. Unity官方文档 Unity as a Libr ...

  4. Wpf Prism.Unity 7

    Prism.Unity 中UnityBootStrapper已经不用了,可以继承PrismApplication 1.Install-package Prism.Unity -v 7.2.0.1367 ...

  5. 如何在WCF中集成unity

    第一种是代码方式: 点击打开链接http://blogs.microsoft.co.il/gadib/2010/11/30/wcf-and-unity-20/ 还有一种方式可以扩展成配置文件,有时间再 ...

  6. 4: 模块化应用程序开发 Modular Application Development Using Prism Library 5.0 for WPF (英汉对照版)

    A modular application is an application that is divided into a set of loosely coupled functional uni ...

  7. [WPF系列]基础学习(一) WPF是什么?

    引言 学习之前,我们首先大概了解下WPF诞生的背景以及它所能解决的问题或者新颖之处.WPF作为微软新一代的用户界面技术,   WPF简介 WPF的全称是WindowsPresentationFound ...

  8. MVVM在WPF中应用(1)

    在软件行业浸润了这么多年,第一次在MES的工厂里从事软件开发. 在这里的感觉就是安静.宽松,比在那些专门以软件为主的企业中轻松自在.在这里的第一个项目是关于数据的导入和导出,还有数据的比较这些功能. ...

  9. 2: 使用Prism初始化程序 Initializing Applications Using the Prism Library 5.0 for WPF(英汉对照版)

    This topic addresses what needs to happen to get a Prism for WPF application up and running. A Prism ...

随机推荐

  1. SQL Server 自学笔记

    --★★★SQL语句本身区分大小写吗 --SQLServer 不区分大小写 --Oracle 默认是区分大小写的 --datetime的输入格式,2008-01-07输入进去后显示为1905-06-2 ...

  2. 新安装的linux(linux mint 或则ubuntu)系统中安装postgresql-xc安装的包

    一:./configure的时候1,gcc的处理:sudo apt-get install clang && rvm install 1.9.3 --with-gcc=clang2,缺 ...

  3. PLSQL Developer使用技巧整理(转)

    一.工具-首选项-用户界面-编辑器-其它-显示行号二.工具-首选项-窗口类型-SQL窗口-显示隔号(行号) 在使用PL/SQL Developer对Procedure进行Debug时,突然发现无法Se ...

  4. socket通信技术介绍

    [-] 网络中进程之间怎样通信 什么是Socket socket一词的起源 socket的基本操作 socket函数 bind函数 网络字节序与主机字节序 listenconnect函数 accept ...

  5. 【分享】如何使用sublime代码片段快速输入PHP头部版本声明

    作者:zhanhailiang 日期:2013-06-25 Sublime 菜单栏->Tools→New Snippet→输入以下内容: <snippet> <content& ...

  6. JavaDoc的生成规则---ShinePans

    使用方法: javadoc [options] [packagenames] [sourcefiles] [@files] -overview <file>          从 HTML ...

  7. 推断js中的类型:typeof / instanceof / constructor / prototype

    怎样推断js中的类型呢,先举几个样例: var a = "jason"; var b = 123; var c = true; var d = [1,2,3]; var e = n ...

  8. .NET截断字符串

    /// <summary> /// 截断字符串 /// </summary> /// <param name="s">要截断的字符串</p ...

  9. C# 课堂总结5-数组

    一. 数组:解决同一类大量数据在内存存储和运算的功能. 1.一维数组定义:制定类型,指定长度,指定名称.int[] a=new int[5]int[] a=new int[5]{23,23,23,1, ...

  10. PL/SQL连64位Oracle11g R2 win7 64旗舰环境

    说明:使用的软件版本是PL/SQL Developer 7.0.1,Oracle服务器端安装在Windows7旗舰版上. 以下是我的步骤 1,先到Oracle网站下载客户端:http://www.or ...