首页 Unity脚本入门名师优质课比赛一等奖国赛一等奖课件

Unity脚本入门名师优质课比赛一等奖国赛一等奖课件

举报
开通vip

Unity脚本入门名师优质课比赛一等奖国赛一等奖课件Unity脚本入门深圳市国泰安信息技术有限企业一、命名规范二、第一个脚本三、连接变量四、访问组件五、实例六、调试第1页 一、命名规范在开始前,先说一下在Unity中一些规范.1、变量–首写是小写字母.变量用来储存游戏状态中任何信息.2、函数–首写是大写字母.函数是一个代码块,只需要写一次,在需要时候能够被再次重用.3、类–首写是大写字母.能够被认为是函数库.    第2页 二、第一个脚本  我们第一个脚本是在一个简单游戏场景中走动.第一步:设置场景,即在游戏场景中添加地面和游戏对象。地面可由一个扁Cube代替.创建...

Unity脚本入门名师优质课比赛一等奖国赛一等奖课件
Unity脚本入门深圳市国泰安信息技术有限企业一、命名 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 二、第一个脚本三、连接变量四、访问组件五、实例六、调试第1页 一、命名规范在开始前,先说一下在Unity中一些规范.1、变量–首写是小写字母.变量用来储存游戏状态中任何信息.2、函数–首写是大写字母.函数是一个代码块,只需要写一次,在需要时候能够被再次重用.3、类–首写是大写字母.能够被认为是函数库.    第2页 二、第一个脚本  我们第一个脚本是在一个简单游戏场景中走动.第一步:设置场景,即在游戏场景中添加地面和游戏对象。地面可由一个扁Cube代替.创建一个Cube,缩放x,y,z为”5,0.1,5”,它现在看起来应该是一个大平板.在层次视图(HierarchyView)中重命名为”Plane”.      第3页 二、第一个脚本  我们第一个脚本游戏是在一个简单游戏场景中走动.第一步:设置场景,即在游戏场景中添加地面和游戏对象。地面可由一个扁Cube代替.􀁺创建一个Cube,缩放x,y,z为”5,0.1,5”,它现在看起来应该是一个大平板.在层次视图(HierarchyView)中重命名为”Plane”.      第4页 二、第一个脚本  游戏对象可由另一个Cube代替.创建第二个Cube,将它放置在这个大平板中心位置.假如在游戏视图(GameView)看不到它们,那么改变主相机位置使它们可见.重命名该物体为”Cube1”.还应该建立一个点光源,而且放在大平板之上,使它们更清楚.      第5页 二、第一个脚本  我们第一个脚本游戏是在一个简单游戏场景中走动.第一步:设置场景,即在游戏场景中添加地面和游戏对象。地面可由一个扁Cube代替.􀁺创建一个Cube,缩放x,y,z为”5,0.1,5”,它现在看起来应该是一个大平板.在层次视图(HierarchyView)中重命名为”Plane”.      第6页 二、第一个脚本  要想让游戏对象cube1运动起来,就需要加入脚本。经过控制主相机位置来实现,要做到这一点,我们现在要写一个脚原来读取键盘输入.然后把脚本和相机链接起来。首先创建一个空脚本.选择”Assets->Create->Javascript”并在项目面板重命名为”Move1”.双击Move1脚本,它将打开,而且默认包含有Update()函数,我们将我们编写代码插入这个函数,任何加入Update()函数中代码都将在每一帧(frame)执行一次.      第7页 二、第一个脚本       第8页 二、第一个脚本Update()函数:这个函数在渲染一帧之前被调用。这里是大部分游戏行为代码被调用地方。在Unity中为了移动一个游戏对象我们需要用transform来更改它位置,属于Translate,这个Translate函数有x,y和z三个参数,因为我们想经过光标键控制主相机,我们只需要下面这些代码,来决定按键按下后参数改变:    Input.GetAxis()函数返回-1或1一个值,比如在横轴上左光标键映射为-1,右光标键映射为1.横轴和竖轴是在输入设置(InputSettings)中预先定义好.从Edit->ProjectSettings->Input中很轻易重定义按键映射.注意:参数0为y轴,因为我们不希望镜头上仰.  functionUpdate(){transform.Translate(Input.GetAxis(“Horizontal”),0,Input.GetAxis("Vertical"));}第9页 二、第一个脚本  打开脚本Move1并输入上面代码,注意大小写.现在我们第一个脚本写完了,怎么让Unity游戏对象含有这个脚本行为呢?第一步:首先点击你希望应用此脚本游戏对象,对于我们而言,这里将是主相机,你能够从层次视图和场景视图中选择它.第二步:从菜单中选择Components->Scripts->Move1,将这个脚本赋予相机,你在检视面板中看到主相机有Move1这个组件.      第10页 二、第一个脚本        第11页 二、第一个脚本  提醒:也能够从项目视图拖拽脚本到场景视图游戏对象上.点击播放按钮运行游戏,你能经过光标键或W,S,A,D键来移动主相机.你可能注意到了,摄影机移动有点太快了,让我们来找一个更加好 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 来控制摄像头速度.正如先前在Update()函数里代码,相机速度是按帧执行.然而我们需要游戏对象移动按秒执行.为了实现这一目标,我们需要将返回值乘以Input.GetAxis()函数中Time.deltaTime:      第12页 二、第一个脚本        varspeed=5.0;functionUpdate(){varx=Input.GetAxis("Horizontal")*Time.deltaTime*speed;varz=Input.GetAxis("Vertical")*Time.deltaTime*speed;transform.Translate(x,0,z);}将上面代码更新到Move1脚本.注意:Update()外这个速度变量.这是所为public变量,这个变量会在检视面板中看到.它是很有用,实际使用中能够方便调整它值,这比改变代码来说方便多.第13页 三、连接变量        经过Unity界面来连接变量功效是非常强大.Unity允许在其界面上用拖拽(draganddrop)方式来赋予游戏对象脚本代码.这是快速又简练方式.这么在Unity界面中完成连接变量功效。我们总是需要脚本代码中暴露变量,方便我们在检视面板中设置数值.为了演示连接变量概念,我们建立一个跟随玩家(主相机)聚光灯.添加一个聚光灯到场景视图,移动它靠近其它游戏对象.创建一个JavaScript脚本并重命名为Follow.我们希望主相机地方有个聚光灯所照耀.实际上,Unity中有个函数能做到这一点.transform.LookAt().我们能够使用一个暴露变量(Transform类型)。Follow.js脚本以下:vartarget:Transform;functionUpdate(){transform.LookAt(target);}第14页 三、连接变量  赋予脚本给聚光灯,当这个脚本成功添加后,”target”变量就会暴露了.选中主相机,从层次视图拖拽主相机到聚光灯监视面板中”target”暴露变量上分配给target变量,即聚光灯将跟随主相机.假如我们想聚光灯跟随不一样对象,我们也能够拖拽不一样对象过去(当然只要它类型是Transform).播放游戏,在场景视图中你能看到聚光灯跟随在主相机周围.你能够改变聚光灯位置来改变效果. 第15页 四、访问组件  作为一个游戏对象能够有多个脚本(或其它组件).它不可防止要访问其它组件函数或变量.Unity中经过GetComponent()函数来实现这个功效.现在我们要添加另外脚原来实现按下跳跃键(默认空格键)同时让聚光灯射向Cube1. 让我们先思索这个问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 ,我们要做是:1.监视跳跃键被按下.2.当跳跃键按下时,聚光灯将照射Cube1.      第16页 四、访问组件 我们怎样做到这一点呢?创建一个新JavaScript脚本并重命名为Switch,添加代码到Switch.js:      varswitchToTarget:Transform;functionUpdate(){if(Input.GetButtonDown("Jump"))GetComponent(Follow).target=switchToTarget;}第17页 四、访问组件 尤其注意关注GetComponent()值,这将返回一个参考给Follow脚本,我们就能够用它来访问”target”变量.添加Switch脚本到聚光灯和将在检视视图中指定Cube1给switchToTarget值.运行游戏,走动验证聚光灯像往常一样跟伴随你,然后你按下空格键,聚光灯焦点将转到Cube1上.除了上面方式之外,能够经过写代码方式指定变量(而不是经过Unity界面),让我们看看怎样做.记住,这只是用来比较,提议经过Unity界面来给变量赋值.早先按下空格时告诉聚光灯聚焦到Cube1上.我们处理 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 是做一个暴露变量在Switch脚本,我们便能够在Unity界面上拖拽Cube1上去. 写代码方式主要有两种方法做到这一点:1.使用游戏对象名称(name)2.使用游戏对象标签(tag)  第18页 四、访问组件 游戏对象名称能够从层次视图中看到游戏对象名称.用GameObject.Find()函数来使这些名称作为参数.所以假如我们想按下跳跃键时候切换聚光灯从主相机到Cube1,代码以下:      functionUpdate(){if(Input.GetButtonDown("Jump")){varnewTarget=GameObject.Find("Cube1").transform;GetComponent(Follow).target=newTarget;}}第19页 四、访问组件注意:没有暴露变量而是直接使用代码.1.查看API取得更多Find()使用方法 2.游戏对象标签游戏对象标签是字符串用于识别一个组件标志.在检视视图中点击Tag按钮查看内建标签.你也能够创建自己标签.第20页 四、访问组件 GameObject.FindWithTag()函数能经过详细标签寻找组件和返回一个字符串作为参数.代码以下:      functionUpdate(){if(Input.GetButtonDown("Jump")){varnewTargetGameObject.FindWithTag("Cube1").transform;GetComponent(Follow).target=newTarget;}}第21页 五、实例 通常在运行时创建(create)对象(如游戏正在播放).这时我们要用到Instantiate函数.下面我们学习怎样在每次按下开火按钮(或按鼠标左键或左Ctrl键)后经过实例(建立)一个新游戏对象.我们怎么做呢?我们希望用户像往常一样走动,当按下开火按钮,实例化创建一个新对象. 思索以下几点:哪个物体做我们实例?在哪里做实例化?关于哪个对象到实例,最好处理方法是暴露变量.这意味着我们随时能够经过拖拽游戏对象到变量来改变对象为实例. 第22页 五、实例 至于哪里做实例化,现在我们只要实现当按下开火按钮时在用户(主相机)当前位置创建新游戏对象.实例化函数有三个参数:(1)我们要建立一个对象,(2)对象三维位置(3)对象旋转位置. 完整代码以下(Create.js): varnewObject:Transform;functionUpdate(){if(Input.GetButtonDown("Fire1")){Instantiate(newObject,transform.position,transform.rotation);}}第23页 五、实例 不要忘记,transform.position和transform.rotation是附加到脚本transform位置和旋转,这里假如是主相机(MainCamera).然而,当一个对象被实例化,通常将对象设置为预设(prefab),我们现在将Cube1游戏对象设置为预设.首先,让我们创建一个空预设,选择Assets->Create->Prefab.重命名这个预设为”Cube”.从层次视图拖拽Cube1游戏对象到项目视图Cube预设上.注意预设图标改变.第24页 五、实例 现在我们创建Javascript代码.创建一个新脚本和命名为Create,并插入上面代码.把这个脚本赋予给主相机(MainCamera)和将Cube预设赋予主相机上newObject变量.运行游戏,并向以往一样走动.每当按下开火按钮(鼠标左键或左Ctrl)你都能看到一个新Cube出现.第25页 六、调试 调试是发觉和修正你代码中人为错误技巧,Unity中提供了Debug类,我们现在看看Debug.Log()函数.LogLog()函数允许用户发送信息到Unity控制台.这么做原因可能包含:1.1.在运行时要验证某部分代码是否达成.2.汇报变量状态.我们现在使用Log()函数,当用户点击开火按钮时发送一个消息到Unity控制台.打开创建脚本并在”Instantiate’”代码内”if”处添加以下代码:Debug.Log("Cubecreated");运行游戏和点击开火按钮,你能看到Unity界面下方显示”Cubecreated”,你能够点击这个提醒详细查看Unity控制台.另外一个有用功效是用于调试私有变量。再次打开创建脚本并添加两行:(1)添加私有变量引用cubeCount(2)当一个cube实例创建后增加这个变量第26页 六、调试完整代码以下(Create.js):varnewObject:Transform;privatevarcubeCount=0;functionUpdate(){if(Input.GetButtonDown("Fire1")){Instantiate(newObject,transform.position,transform.rotation);Debug.Log("Cubecreated");cubeCount++;}}运行游戏并点击开火按钮创建一些Cube,注意每当一个新Cube实例创建后cubeCount变量递增.一样这个数值是灰色,意味着变量是只读(不能编辑).第27页Thankyou!谢谢!第28页
本文档为【Unity脚本入门名师优质课比赛一等奖国赛一等奖课件】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_598372
暂无简介~
格式:ppt
大小:1MB
软件:PowerPoint
页数:28
分类:小学语文
上传时间:2020-05-18
浏览量:10