unity3D本科生实训报告Word下载.docx
《unity3D本科生实训报告Word下载.docx》由会员分享,可在线阅读,更多相关《unity3D本科生实训报告Word下载.docx(7页珍藏版)》请在冰点文库上搜索。
1.3、把握地形的创建和简单编辑方式
1.4、把握游戏场景中光源的添加和设置方式
1.五、把握场景中简单对象的创建与属性设置方式
1.六、把握场景中玩家角色的创建与设置
1.7、把握基于碰撞检测的游戏逻辑脚本编程实现
二、实训意义
2.一、贯彻顽强实践环节和理论联系实际的教学原那么,增加学生对专业感性熟悉的深广度,运用所学知识和技术为后续课程奠定较好的基础。
2.二、通过实训,开阔学生眼界和知识面,取得运算机硬件安装和系统保护的感性熟悉。
与此同时安排适量的讲课或讲座,增进理论同实践的结合,培育学生良好的学风。
2.3、实中进行专业思想与职业道德教育,使学生了解专业、酷爱专业,激发学习热情,提高专业适应能力,初步具有职业道德观念。
2.4、通过对专业、行业、社会的了解,熟悉尔后的就业职位和就业形式,使学生确立学习方向,尽力探讨学习与就业的结合点,而发挥学习的主观能动性。
三、实训内容
3.1场景搭建
3.1.1利用基础物体搭建场景:
游戏对象的Transform属性能够进行位置、旋转、大小的设置。
属性:
1、transform.position活着界空间坐标transform的位置
二、transform.rotaition//旋转3、transform.scale//缩放
方式:
一、位移:
transform.Translate二、旋转:
transform.Rotate
3、围绕旋转:
transform.RotateAround
查找:
Transform.Find
//通过名字查找子物体并返回它
3.1.2搭建地形
1、地形绘制
2、草地绘制
3、添加树木
4、添加天空盒子
5、增加雾气和水湖
3.2利用大体物体制作小游戏:
3.2.1gameobject随机生成
GameObject是Unity场景里面所有实体的基类.
对象创建:
GameObject
cube=GameObject.CreatePrimitive
(PrimitiveType.Cube);
克隆对象:
GameObject.Instantiate
(cube);
//克隆一个cube对象
销毁对象:
GameObject.Destroy
(cube,
2f);
//两秒以后cube对象销毁
对象的查找:
go=GameObject.Find
("
Cube"
);
GameObject
go2=GameObject.FindWithTag
cube"
)
3.2.2碰撞检测
碰撞器(Collision)
OnCollisionEnter(Collision
col){}//进入
OnCollisionStay(Collision
col){}//停留
OnCollisionExit(Collision
col){}//退出
触发器(Trigger)
OnTriggerEnter(Collider
OnTriggerStay(Collider
OnTriggerExit(Collider
区别:
是不是勾选IsTrigger,触发器必需勾选上Is
Trigger,碰撞器不需要。
3.3UI设计
1.游戏开始按钮2.介绍按钮3.设置按钮(音量操纵)4.切换动画录制
3.4小游戏详细设计
分数统计
publicstaticintscore=0;
publicGameObjectscorer;
最高分纪录
highscore.GetComponent<
Text>
().text=PlayerPrefs.GetInt("
recorder"
).ToString();
if(score>
=target){NextButton.SetActive(true);
}
else{OverButton.SetActive(true);
时刻操纵:
InvokeRepeating("
CountDown"
0,1);
voidCountDown()
{
time-=1;
}
Time.deltaTime
//计时
游戏暂停:
游戏进行中,玩家可点击暂停按钮,显现暂停界面,并显现相应按钮选项。
游戏终止,
当剩余时刻为0时,游戏终止,显示当前得分与最高得分。
达到目标值,进入下一关,假设没达到目标值,进入终止界面。
3.5实训最终游戏设计
3.5.1游戏简介:
游戏开始,玩家可通过WASD键操纵player进行上下左右的移动操纵
游戏进行中,会随机产生各类物体,如海藻,海星,硬币,碰撞将会产生不同的成效,增加得分或生命值。
假设碰着炸弹那么将破坏船体。
假设达到关卡所需分数,游戏短暂暂停,增加分数值和生命值,达到下一关炮弹显现数量及速度增加,即游戏难度增加。
3.5.2游戏开始界面:
包括下拉式菜单栏,最高分统计,开始按钮,音量设置。
主菜单栏:
设置有显现动画,包括shop按钮和missions按钮
Shop:
菜单:
我的物品:
显示我当前拥有的物品,包括生命值,加速器,防护罩及财富数量。
玩家能够依照需要和自己当前的财富值购买所需物品,用于接下来的游戏。
CURRENTMISSIONS:
用于显示玩家当前需要完成的任务。
3.5.3游戏进行
点击开始按钮,游戏开始,开始动画启动,游戏界面展开。
floatamtToMove=backspeed*Time.deltaTime;
transform.Translate(Vector3.right*amtToMove);
if(transform.position.x<
-19.3f)
{
transform.position=newVector3(26.03f,transform.position.y,0);
}
游戏背景操纵:
由两张背景图片组成,进行无缝连接,不断循环运动,与潜艇产生相对运动。
预设体的产生:
以小组为单位,每隔必然的时刻,随机产生已经设置好的物体队形。
产生的物体,同一组的以相同的时刻向右运动,十秒后销毁物体。
不同组别的物体从不同的初始位置产生。
游戏暂停界面:
时刻暂停,能够选择游戏从头开始或退出游戏。
碰着炸弹,触发爆炸成效,潜艇失控,下沉,游戏终止。
游戏终止,显示当前所得分数,假设生命值大于1,玩家可选择消耗爱心,从游戏终止位置继续前行,分数,距离等数据累计,不清零。
假设当前无爱心值,那么游戏完全终止。
假设潜艇前进距离达到目标值,显示get界面,增加相应生命值和财富值,选择下一个关卡,游戏继续,同时游戏速度增加,难度加大。
相应目标值增加。
四、心得和体会
刚开始实训的时候,其实内心是比较恐惧的,因为对Unity
3D如此的软件完全没有认知,关于这门课程的学习也处于比较茫然的状态,能够说是抱着尝试的心情开始这门课程的学习的。
开始利用软件的时候,不明白从何下手,于是
慢慢随着教师进行操作,渐渐地,我发觉其实并无我想象中那么困难,一样的操作仍是能够在书本上学到的,可能最终完全把握会有难度,可是关于目前的要求,仍是比较易于实现的。
在学习并实践的进程中,可能在脚本游戏的代码编写上仍是显现最多问题的,有的时候确实是照搬书本上的代码,也会犯错,不单单是粗心,也是我关于代码并非熟悉致使的,在一遍遍的修改中,我对代码的编写也加倍熟练,相较较之前的生疏,此刻算是比较驾轻就熟了。
另外,比较困扰我的确实是摄像机位置的各方面调整,有的时候很难调整到想要的角度,最后只能将就,这点让我很是纠结。
关于这种情形,我试着各类方式达到理想成效,若是说我改变不了摄像机,那我只能改变我设置的场景、对象的位置了,尽管如此的方式比较笨,而且可能会比较繁琐,可是最终也帮忙我实现了想要达到的成效。
我最终仍是自己尝试着学习了Unity
3D的操作,可能我所做所学的都是基础的知识,相对简单的,可是我仍是学到了很多,不能说了解但也是熟悉了那个软件。
希望在以后的工作中能够好好利用本次实训所学习到的内容。