跟我从零基础学习Unity3D开发--U3d脚本注意事项及两个基本函数的简单介绍
经过上一篇的学习,我相信开发环境您已经搭好了,如果还没有搭好可以百度一下。
今天主要讲的有以下几点:
第一:Unity3D中的C#脚本与.net中的C#写法的区别
1.Unity3D C#脚本不支持命名空间.
2.Unity3D C#脚本初始化不要放到构造函数中,而是放到Start()方法中。
3.Unity3D C#脚本 get/set写法属性不被识别,直接public字段就能当属性用,private或者不写修饰符就是私有字段。
4.脚本中文问题:代码中有中文的话会有乱码问题。到资源管理器中打开项目的Assets文件夹(或点右键Show In Explorer),用unity3d目录下的Editor\Data\Tools\UniSciTE下的UniSciTE.exe打开cs文件,File→Encoding改为UTF-8 with BOM,敲个空格造成修改,然后保存即可(可以修改cs文件打开方式更简单)。最好一开始就修改编码,否则会很麻烦。
完整的代码:
第二:这里基本讲解一下当您打开一个脚本自带的两个函数Start、和Update的用法和意思
1.Start
对于这个函数我想不用多讲,大家从字面意思就能理解,程序开始执行时调用的函数。上面提到Unity3D中初始化不能放在构造函数中要放到Start函数中。从某种意义上讲可以理解为Unity3D吧传统的构造函数用这里的Start来替换了(这里完全属于个人理解如果不理解不正确希望大神指出)。所以我们把Start理解为构造函数自然就容易理解为什么初始化要放到Start中了。这个函数主要用于对一些游戏资源的初始化用的。我相信这个函数大家容易理解,这里都不多讲了。重点看下面一个。
2.Update
这个函数可以说是一个核心函数。这里先问一下?您知道什么是帧的概念吗?如果处理过视频、弄过ps、flash之类的做动态的视频或者动画的朋友可能对这个帧比较了解。我这里简单描述一下帧的概念。大家先回想一下很久以前的那种电影是怎么做的?
没错就是你看到的这样一张一张连接而成的,然后快速浏览每一张就形成了动画。我们现在看到的视频、Gif等等一些都是类这种电影的胶片一张一个图像一个图像拼接的,然后每秒播放不低于24张(为什么是24如果我没记错的话24是视觉什么的最低帧数低于这个就是放幻灯片了)就会形成动画。讲了这么多那什么是帧呢?帧就可以形象的理解为这电影胶卷的每一个图片。
我这里引用一下百度百科
帧——就是影像动画中最小单位的单幅影像画面,相当于电影胶片上的每一格镜头。 一帧就是一副静止的画面,连续的帧就形成动画,如电视图象等。
你这时就会问讲这么多废话,Update到底是怎么回事还没说呢?先别忙,如果您对帧这个概念不熟悉那么你对这个函数的理解就会还停留在.net中的事件驱动的那个机制。从字面理解Update就是刷新、更新的意思,那它刷新什么更新什么呢?我们用的Unity3d程序可以看作就是一个电影,当你一运行它,他就开始一帧一帧开始放映,没播放一帧就会调用一下这个Update函数。可能这里有点空洞,没关系大家先按自己当前理解的意思去做做练习,下一次会给大家一个实例来讲解一下咯函数。(为什么这里不讲我怕直接给例子先入为主了,当你按自己的理解去练习了才发下达不到效果,而后我再给出原因这样理解深刻一点)