这样的话算是实现了之前的需求:将U3D和Winform结合,不过winform的控件如何和U3D进行交互呢?再看一下UnityWebPlayerClass类的定义,发现有一个SendMessage方法,和U3D自身脚本的SendMessage定义一样。
下面首先在U3D中创建一个C#脚本,添加一个非常简单的函数:
void Down() { transform.Translate( Vector3.down * Time.deltaTime ); }
将脚本拖到叫做Sphere的对象上面。然后在窗体上添加一个按钮,在按钮的click事件中调用上面定义的方法:axUnityWebPlayer1.SendMessage( "Sphere", "Down", null );
再次运行,不停地点击按钮,就可以看到小球缓慢往下移动的效果了。 经过上面的尝试,总算是初步解决了U3D和Winform(WPF也类似)集成的问题,不过核心的对象控制代码还是得在U3D中写好、编译才行,winform只是提供了一个更为习惯的UI而已。不知道是否还有更好、更方便、更强大的方法,期待。。。