网站大量收购闲置独家精品文档,联系QQ:2885784924

[u3d脚本.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[u3d脚本

概览:用C#编写脚本 除了语法,使用C#或者Boo编写脚本还有一些不同。最需要注意的是: 1.从MonoBehaviour继承 所有的行为脚本必须从MonoBehaviour继承(直接或间接)。在Javascript中这自动完成,但是必须在C#或Boo脚本中显示申明。如果你在Unity内部使用Asset - Create - C Sharp/Boo Script菜单创建脚本,创建模板已经包含了必需的定义。 public class NewBehaviourScript : MonoBehaviour {...} // C# class NewBehaviourScript (MonoBehaviour): ... # Boo 2.使用Awake或Start函数来初始化 Javascript中放置在函数之外的代码,在C#或Boo中要放置在Awake或Start中。 Awake和Start的不同是Awake在场景被加载时候运行,而Start在第一次调用Update或FixedUpdate函数之前被调用,所有Awake函数在任何Start函数调用之前被调用。 3.类名必须与文件名相同 Javascript中,类名被隐式地设置为脚本的文件名(不包含文件扩展名)。在c#和Boo中必须手工做。 4.在C#中Coroutines有不同语法。 Coroutines必有一个IEnumerator返回类型,并且yield使用yield return… 而不是yield… using System.Collections; using UnityEngine; public class NewBehaviourScript : MonoBehaviour { // C# coroutine IEnumerator SomeCoroutine () { // 等一帧 yield return 0; //等两秒 yield return new WaitForSeconds (2); } } 5.不要使用命名空间 目前Unity还不支持将代码放置在一个命名空间中,这个需要将会出在未来的版本中。 6.只有序列化的成员变量会显示在检视面板中 私有和保护成员变量只在专家模式中显示,属性不被序列化或显示在检视面板中。 7.避免使用构造函数 不要在构造函数中初始化任何变量,使用Awake或Start实现这个目的。即使是在编辑模式中Unity也自动调用构造函数,这通常发生在一个脚本被编译之后,因为需要调用构造函数来取向一个脚本的默认值。构造函数不仅会在无法预料的时刻被调用,它也会为预设或未激活的游戏物体调用。 单件模式使用构造函数可能会导致严重的后果,带来类似随机null引用异常。 因此如果你想实现,如,一个单件模式,不要使用构造函数,而是使用Awake。其实上,没有理由一定要在继续自MononBehaviour类的构造函数中写任何代码。 概览:最重要的类 Javascript中可访问的全局函数或C#中的基类 移动/旋转物体 动画系统 刚体 FPS或第二人称角色控制器 概览:性能优化 1.使用静态类型 在使用Javascript时最重要的优化是使用静态类型而不是动态类型,Unity使用一种叫做类型推理的技术来自自动转换Javascript为静态类型编码而不需要你做任何工作。 var foo=5; 在上面的例子里foo会自动被推断为一个整型值。因此,Unity可能使用大量的编译时间来优化。而不使用耗时的动态名称变量查找等。这就是为什么Unity比其他在JavaScript的实现平均快20倍的原因之一。 唯一的问题是,有时并非一切都可以做类型推断。Unity将会为这些变量重新使用动态类型。通过回到动态类型,编写JavaScript代码很简单。但是这也使得代码运行速度较慢。 让我们看一些例子: function Start () { var foo = GetComponent(MyScript); foo.DoSomething(); } 这里foo将是动态类型,因此调用DoSomething函数将使用较长时间,因为foo的类型是未知的,它必须找出它是否支持DoSomething函数,如果支持,调用它。 function Start () { var foo : MyScript = GetComponent(MyScript); foo.DoSomething(); } 这里我们强制foo为指定类型,你将获得更好的性能。 2.使用#pragma strict 当然现在问题是,你通常没有意识到你在使用动态类型。#pragma strict解决了这个!简单的在脚本顶部添加#pragma strict。然后,unity将在脚本中禁用动态类型,强制使用静态类型,如果一个类

文档评论(0)

xiayutian80 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档