- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图形学实验报告2 杨伟健
图形学实验报告二
杨伟健 23020102203993
实验目的:
在上次实验的基础上,接下去创建子弹模型,以及用C#实现碰撞检测,了解Unity3d中的相关类与方法的作用和使用方法,最后制作射击游戏成型。
实验内容:
添加子弹projectile对象,这里为了发射多枚子弹,再新建一个可复用对象projectileprefab,编写相关代码projectile.cs,达到子弹垂直上升效果,添加子弹刚体,并设置enemy为碰撞体;编写碰撞相关代码;这里为了更为逼真,新建可复用对象blow1prefab和blow2prefab,作为player和enemy的爆炸特效,并设置相关粒子系统;显示游戏参数(包括生命,躲避,分数等);最后是游戏的后期制作,给游戏添加背景、再给player飞机添加飞行特效,即左右移动时平滑转动一定角度和添加飞机尾气、添加背景星球月球和地球并编写相关代码、添加游戏主场景和游戏结束文字。
实验过程:
添加子弹,设置相关参数,编写相关代码:
Component---GameObject---Capsule添加capsule对象,设置合适大小;
编写projectile.cs实现子弹的向上移动;
用条件语句及destroy()方法,当子弹超出屏幕范围摧毁该对象;
添加projectileprefab可复用对象,并把projectile对象附加到此对象上;
在player中用一条件语句(if(Input.GetKeyDown(KeyCode.Space)))和Instantiate()方法实例化一个projectileprefab,实现发射子弹;
在player中用Quaternion.Slerp ()方法实现左右移动时平滑转动一定角度,更加逼真;
添加一个粒子系统,设置相关参数,使其具有“爆炸”的视觉效果,并将其附加到一个新的可复用blowNprefab上;
碰撞检测相关代码编写:
在projectile类中编写如下代码:
void OnTriggerEnter(Collider otherObject);使用此碰撞器;
当引发此事件时,对于enemy是重新设置位置,使用GetComponent()获取对象并调用该对象的setposition()公共方法;
同时应该产生一个爆炸效果,使用Instantiate()在该位置实例化一个爆炸粒子系统;
同理,也在player类中写入相关代码实现爆炸和碰撞,注意在lives低于0的时候destroy掉player,并显示结束游戏字样;
有关结束游戏3dtext,添加GameObject---Creat Other---3d text,设置text值为Game Over,并编写ending.cs实现文字从屏幕顶部落下到中央位置停止,并在player中添加代码当lives少于0时destroy掉player,并显示结束游戏字样;
游戏主菜单以及OnGUI()类的编写:
游戏主菜单:新建游戏场景main.unity,编写main.unity实现OnGUI()类,在屏幕上显示文字及添加按钮:
使用GUI.DrawTexture()设置主菜单的背景图片;
使用GUI.Label()标签实现文字的显示;
使用GUI.Button()添加一个按钮;
使用Application.LoadLevel(basic)实现按下按钮游戏场景转换;
b) 同上,在player类中也编写相关代码,显示生命和missed和得分;
游戏背景和模型美化:
有关游戏背景,添加plane对象,设置material,并编写plane.cs使其匀速下落,完成后复制自身并拖动到合适位置,使两个plane交替作为背景,以实现循环;
有关模型美化,网上搜得飞机模型,转换成适当格式(.FBX),添加进texture文件夹,将player的mesh值改为所用模型即可;**
修改相应碰撞体即可。
实验代码:
projectile类:
public class projectile : MonoBehaviour {
public float projectileSpeed;
private Transform MyTransform;
public GameObject blowprefab;
// Use this for initialization
void Start () {
MyTransform = gameObject.transform;
}
// Update is called once per frame
void Update () {
float amttomove = Time.deltaTime * projectileSpeed;
MyTransform.Transl
您可能关注的文档
最近下载
- 《九年级学生数学典型错题的成因及对策研究》实施方案.docx
- 建设工程施工专业分包合同示范文本GF-2003-0213.pdf VIP
- 变废为宝演绎精彩——初中数学易错题归因之我见 .pdf VIP
- 个人纪律作风自查报告.docx VIP
- 错题归因法解析(中小学生教育).pptx VIP
- 城市地铁车辆车钩缓冲装置行业技术规范 - 中国城市轨道交通协会.pdf VIP
- 537初中数学学生的典型错题成因及防范措施的研究的结题报告.pptx VIP
- CNCA-CURC-07:2019 城市轨道交通装备产品认证实施规则 特定要求—城市轨道交通车辆车钩缓冲装置.pdf VIP
- 校园流感防控技术操作指南(简易版、完整版)说明书.pdf
- LD350变频器说明书V2.0.pdf VIP
原创力文档


文档评论(0)