c# h5 unity3d_Unity3D中JavaScript与C#对比

第一个也是最容易区分的一点就是声明变量和方法。

JavaScript的脚本:

1.  private var cubeTransform;

在C#中,同样的代码则会是:

1.  private Transform cubeTransform;

这对方法同样适用,在C#中,一个方法什么值也没有返回,那么他的返回值为 void 类型,但是在JavaScript中则可以省略。

类的继承也是不同的。在JavaScript和C#中,方法是隐型并且不可重载,除非方法声明中添加虚拟关键字。不同的是C#只重载那些包含重载关键字的方法。而JavaScript不需要关键词,只要重载类方法就可继承他们。我们来看一个JavaScript类继承的例子:

1.  class Weapon extends Item

2.  {

3.       //Class members and declarations

4.  }

在C#中,同样的代码则会是:

1.  public class Weapon : Item

2.  {

3.       //Class members and declarations

4.  }

这就是这两种代码的主要区别,实际上他需要定义全部的东西,像执行产出代码,访问GameObject和组件,激光投射等等。还有一些其他的不同点,比如导入函数库的关键字(在JavaScript中用“Import”,在C#中使用“using”),但是这些声明和关键字的不同就比较容易明白了。

1.  //do this:

2.  private var score:int;

3.  //instead of this:

4.  private var score;

======================================================

使用JavaScript来获取GameObject很简单,你只需要调用Find()静态方法,并把想要的GameObject的名称作为参数:

1.  private var pawnGO:GameObject;

2.  function Awake()

3.  {

4.      pawnGO = GameObject.Find("Pawn");

5.  }

用C#也很相似:

1.  using UnityEngine;

2.  using System.Collections;

3.

4.  public class PawnGetter : MonoBehaviour

5.  {

6.      private GameObject pawnGO;

7.

8.      void Awake ()

9.      {

10.         pawnGO = GameObject.Find("Pawn");

11.     }

12. }

在不考虑两种语言的关键字和格式不同的情况下,代码是完全一样的(第一个代码的第四行和第二个代码的第八行是相同的)。不管代码是强类型还是弱类型,GameObject.Find()方法总是会返回一个GameObject值。

现在,让我们看看如何获得一个GameObject上的组件。假设“PawnMover”组件赋给“Pawn”GameObject,让我们来看看如何使用JavaScript获得“PawnMover”组件:

1.  private var pawnGO:GameObject;

2.  private var pmSC:PawnMover;

3.  function Awake()

4.  {

5.      pawnGO = GameObject.Find("Pawn");

6.      pmSC = pawnGO.GetComponen

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值