【Unity入门】生成第一个脚本

【Unity入门】生成第一个脚本

    大家好,我是Lampard~~

    欢迎来到Unity入门系列博客,所学知识来自B站阿发老师~感谢

【Unity入门】生成第一个脚本_第1张图片

(一)搭建开发环境

(1)下载visual studio

    在我们下载unity编译器的时候,会让我们选择当前unity编译器搭配的vs编译器。我们最好就直接勾选上,或者可以自己手动下载vs,在vs的installer里勾选unity引擎开发需要的环境

【Unity入门】生成第一个脚本_第2张图片

(2)unity中设置脚本编译器

    下载好了之后,我们要在unity中更新vs作为脚本编译器。方式很简单,打开编译器,选择Edit -> Preferences目录 ,在 External Tools 页签里,选择 VS 作为脚本编辑器

【Unity入门】生成第一个脚本_第3张图片

(3)设置随脚本修改重新编译

    为了方便之后的开发调试,我们需要设置每当脚本修改了之后,unity自动帮我们编译这个脚本,让改动可以实时的生效。选择Edit -> Preferences目录 ,在 General  页签里,把Script Change While playing 选项调整为:Recompile After Finished Playing即可

【Unity入门】生成第一个脚本_第4张图片

(二)生成第一个脚本

(1)创建C#文件

    在Unity中,脚本也属于资源的一部分。因此我们同样的在Asserts目录下创建一个Scripts的文件夹用来存放脚本文件

    在该文件夹中右键create菜单,选择C#脚本即可生成第一个C#文件

【Unity入门】生成第一个脚本_第5张图片

(2)重命名C#文件

    生成的C#脚本默认命名为NewBehaviourScript,双击这个脚本,unity会自动帮我们打开vs(如果没有请重阅读上文配置)

【Unity入门】生成第一个脚本_第6张图片

    我们可以看到,里面存在一个同样命名为NewBehaviourScript的类,这是unity的特数规则:类名和文件名相同,因此我们在重命名类名或者文件名时就不可以像以往直接rename了,我们需要在脚本中选中类名然后右键重命名,比如修改成FirstLogic,我们就可以看到脚本和类名同时发生修改

【Unity入门】生成第一个脚本_第7张图片

    在unity编译器中查看,也是已经同步修改过来了的

【Unity入门】生成第一个脚本_第8张图片

 (3)Hello World

    初步的浏览一下这个脚本,首先是用了System.Collections和UnityEngine的命名空间,然后下方是有一个FirstLogic类,继承于unity对象基类MonoBehaviour。类里面有一个start方法,一个update方法

    start有点像cocos的init是进行初始化的,update那就像cocos的update了进行帧更新

【Unity入门】生成第一个脚本_第9张图片

     作为程序员,拿到第一个脚本,当然要写下一句Hello World啦!

【Unity入门】生成第一个脚本_第10张图片

     很简单,只需要在start方法里,写上这么一句就可以啦,Debug.Log在unity中就类似我们熟悉的print

    void Start()
    {
        Debug.Log("Hello World");
    }

 (4)挂载脚本组件

    接下来我们只需要把脚本挂载到场景的对象中并运行就可以了(注意不挂上去的话脚本是不会生效的!)

【Unity入门】生成第一个脚本_第11张图片

    挂载的方式和我们之前熟悉的一样拖动过去即可,拖过去之后,会发现对象的inspector面板中多了我们的FirstLogic组件,大功告成运行看看:

【Unity入门】生成第一个脚本_第12张图片

(三)脚本运行原理

(1)脚本组件会自动实例化

    可能有些朋友会有疑惑:那么神奇的吗,直接挂上去就可以了?这个脚本不是一个类吗,我们还没有new一个对象出来呢怎么就生效了呢??

【Unity入门】生成第一个脚本_第13张图片

     其实啊,是因为unity自动帮助我们生成对象了。在运行的时候,unity会遍历场景的对象,然后根据对象身上的组件先生成组件对象,然后再生成脚本对象

    因此我们不需要考虑脚本的实例化问题,也不用担心在脚本中访问其他组件时,会不会出现访问不到的情况

(2)一个对象可以挂载多个脚本

   比如我们现在再新建一个C#脚本,加上了这样一个打印:

【Unity入门】生成第一个脚本_第14张图片

    然后挂到同一个物体上面,运行可以看到两句话都被打印了出来:

【Unity入门】生成第一个脚本_第15张图片

(3)多个对象可以挂载同一脚本

    比如我们把FirstLogic挂到地月系统的地球和月亮中,运行的时候,就会看到代码被执行了两次

而SecLogic只被执行了一次

【Unity入门】生成第一个脚本_第16张图片

 (4)调整脚本的执行顺序

    从Console中我们看到,FirstLogic总是在SecLogic前执行。然而这并不代表unity会按照我们挂载的顺序执行脚本。事实上脚本的执行顺序完全是随机的

    那怎么设定脚本的执行顺序呢?我们可以选择Edit -> Project Settings目录 ,在 Script Execution Order中设置脚本的优先级,优先级越小越先执行

    设置完SecLogci优先级比FirstLogic小之后,我们运行时打印消息的顺序就改变了

【Unity入门】生成第一个脚本_第17张图片

好啦今天就到这里,感谢阅读!!!
点赞,关注!!!

【Unity入门】生成第一个脚本_第18张图片

你可能感兴趣的:(Unity原理,unity,游戏引擎,script,脚本组件)