码迷,mamicode.com
首页 > Web开发 > 详细

JSBinding + SharpKit / 实战:转换 2DPlatformer

时间:2015-05-04 21:51:02      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:

2DPlatformer 是 Unity3D 的一个官方 Demo。本文将介绍使用 JSBinging + SharpKit 转换 2DPlatformer 的过程。

本文并不详细介绍每个步骤的细节。因为他们将在其他文章里做详细介绍。

 

准备工作:首先准备好 JSBinding 的工程,正确导入 JSBinding 插件。

2DPlatformer 是Unity3D的第一个示例代码,一共不到10M。麻雀虽小,五脏俱全。牵扯到很多东西,比如 prefab 的使用,结构体序列化,场景切换,音乐等等。

我们的目标是:在已有的工程中,不添加/更新任何C#代码,不用JS重写任何C#代码,花费最少的时间把整个 2DPlatformer 游戏添加进去。

 

分析:

  1. 2DPlatformer 的 C# 代码全部都在 2DPlatformer/Scripts/ 文件夹中。现在需求是不允许更新C#代码,那么我们最终得把这个文件夹删掉
  2. 既然要删掉所有的C#代码,那功能由谁来实现呢?此时强大的 SharpKit 出场了。他可以自动把 C# 代码转换在 JS 代码。

 

将 2DPlatformer 导入到工程中。直接放在 Assets/ 目录下。

如图:

技术分享

 

点击菜单:[JSB/Generate JS and CS Bindings]

(如果 Unity 版本没改 要导的类也没有变化  此步骤只需要执行一次)

技术分享

 

设置 _JSEngine.prefab。此步骤说明了,要将 2DPlatformer 文件夹下的所有 C# 类、结构体都转换成JS。

并且所有的 prefab、场景里的所有 GameObject 都要删除对 C# 代码的引用。

技术分享

技术分享

 

运行菜单:[JSB/Tool/Add JsType Attribute for all structs and classes]

技术分享

此步骤的目的是往 C# 文件(哪些文件?上个步骤配置的!)中的类和结构体添加 [JsType()] 标记。

// 原来的代码

1 using UnityEngine;
2 using System.Collections;
3 
4 public class Gun : MonoBehaviour
5 {
6     public GameObject rocketGO;                // Prefab of the rocket.
7     public float speed = 20f;                // The speed the rocket will fire at.

// 执行菜单后(生成了 [JsType()] 标记):

1 using UnityEngine;
2 using System.Collections;
3 
4 using SharpKit.JavaScript;
5 [JsType(JsMode.Clr,"../../StreamingAssets/JavaScript/SharpKitGenerated/2DPlatformer/Scripts/Gun.javascript")]
6 public class Gun : MonoBehaviour
7 {
8     public GameObject rocketGO;                // Prefab of the rocket.
9     public float speed = 20f;                // The speed the rocket will fire at.

 

执行菜单:[JSB/Tool/Gen JsType file list]

技术分享

JSBinding + SharpKit / 实战:转换 2DPlatformer

标签:

原文地址:http://www.cnblogs.com/answerwinner/p/4477565.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!