图形学实验报告2 杨伟健.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档