资源描述:
《《Unity脚本入门》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Unity脚本入门深圳市国泰安信息技术有限公司一、命名规范二、第一个脚本三、连接变量四、访问组件五、实例六、调试一、命名规范在开始前,先说一下在Unity中的一些规范.1、变量–首写是小写字母.变量用来储存游戏状态中的任何信息.2、函数–首写是大写字母.函数是一个代码块,只需要写一次,在需要时候可以被再次重用.3、类–首写是大写字母.可以被认为是函数的库.二、第一个脚本我们的第一个脚本是在一个简单的游戏场景中走动.第一步:设置场景,即在游戏场景中添加地面和游戏对象。地面可由一个扁的Cube代替.创建一个Cube,缩放x,y,z为”5,0.1,5”,它现在
2、看起来应该是一个大平板.在层次视图(HierarchyView)中重命名为”Plane”.二、第一个脚本我们的第一个脚本游戏是在一个简单的游戏场景中走动.第一步:设置场景,即在游戏场景中添加地面和游戏对象。地面可由一个扁的Cube代替.?创建一个Cube,缩放x,y,z为”5,0.1,5”,它现在看起来应该是一个大平板.在层次视图(HierarchyView)中重命名为”Plane”.二、第一个脚本游戏对象可由另一个Cube代替.创建第二个Cube,将它放置在这个大平板的中心位置.如果在游戏视图(GameView)看不到它们,那么改变主相机位置使它们可见
3、.重命名该物体为”Cube1”.还应该建立一个点光源,并且放在大平板之上,使它们更清晰.二、第一个脚本我们的第一个脚本游戏是在一个简单的游戏场景中走动.第一步:设置场景,即在游戏场景中添加地面和游戏对象。地面可由一个扁的Cube代替.?创建一个Cube,缩放x,y,z为”5,0.1,5”,它现在看起来应该是一个大平板.在层次视图(HierarchyView)中重命名为”Plane”.二、第一个脚本要想让游戏对象cube1运动起来,就需要加入脚本。通过控制主相机的位置来实现,要做到这一点,我们现在要写一个脚本来读取键盘的输入.然后把脚本和相机链接起来。首先
4、创建一个空脚本.选择”Assets->Create->Javascript”并在项目面板重命名为”Move1”.双击Move1脚本,它将打开,并且默认包含有Update()函数,我们将我们编写的代码插入这个函数,任何加入Update()函数中的代码都将在每一帧(frame)执行一次.二、第一个脚本二、第一个脚本Update()函数:这个函数在渲染一帧之前被调用。这里是大部分游戏行为代码被调用的地方。在Unity中为了移动一个游戏对象我们需要用transform来更改它的位置,属于Translate,这个Translate函数有x,y和z三个参数,因为我们
5、想通过光标键控制主相机,我们只需要下面这些代码,来决定按键按下后参数的变化:Input.GetAxis()函数返回-1或1的一个值,例如在横轴上左光标键映射为-1,右光标键映射为1.横轴和竖轴是在输入设置(InputSettings)中预先定义好的.从Edit->ProjectSettings->Input中很容易重定义按键映射.注意:参数0为y轴,因为我们不希望镜头上仰.functionUpdate(){transform.Translate(Input.GetAxis(“Horizontal”),0,Input.GetAxis("Vertical")
6、);}二、第一个脚本打开脚本Move1并输入上面的代码,注意大小写.现在我们第一个脚本写完了,怎么让Unity的游戏对象具有这个脚本行为呢?第一步:首先点击你希望应用此脚本的游戏对象,对于我们而言,这里将是主相机,你可以从层次视图和场景视图中选择它.第二步:从菜单中选择Components->Scripts->Move1,将这个脚本赋予相机,你在检视面板中看到主相机有Move1这个组件.二、第一个脚本二、第一个脚本提示:也可以从项目视图拖拽脚本到场景视图的游戏对象上.点击播放按钮运行游戏,你能通过光标键或W,S,A,D键来移动主相机.你也许注意到了,摄影
7、机移动的有点太快了,让我们来找一种更好的办法来控制摄像头的速度.正如先前在Update()函数里的代码,相机的速度是按帧执行的.然而我们需要游戏对象的移动按秒执行.为了实现这一目标,我们需要将返回的值乘以Input.GetAxis()函数中的Time.deltaTime:二、第一个脚本varspeed=5.0;functionUpdate(){varx=Input.GetAxis("Horizontal")*Time.deltaTime*speed;varz=Input.GetAxis("Vertical")*Time.deltaTime*speed;t
8、ransform.Translate(x,0,z);}将上面的代码更新到Move