freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計-基于unity游戲引擎的游戲設(shè)計-資料下載頁

2024-12-04 09:56本頁面

【導(dǎo)讀】也是技術(shù)含量較高的項目之一。Unity3D是一個3D游戲開發(fā)工具和游戲。且有一個非常強(qiáng)大的編輯器來整合這一切,非常適合于游戲開發(fā)。使用Unity3D開發(fā)3D游戲的方法和技巧。到了,制作一個游戲所需要做的工作,包括前期的游戲策劃,素材的制作,過Unity3D選擇平臺生成可執(zhí)行文件。也只有一個,這些都需要以后進(jìn)一步設(shè)計和完善。

  

【正文】 bject。 //定義 敵方戰(zhàn)機(jī) var firepoint: Transform。 //定義開火點 var bullet: Rigidbody。 //定義子彈 var bullspeed: int=350。 //定義子彈速度 var attackRange = 。 //定義距離 var target : Transform。//定義共計目標(biāo) //static var value : float 。 private var cun_time: int=0。 function Start () //初始化目標(biāo) { if (target == null amp。amp。 (Player)) target 游戲的設(shè)計與實現(xiàn) 23 = (Player).transform。 } function Update () { //Enemy_tank=(Copter)。 //實例化 if (target == null) return。 if (!CanSeeTarget ()) return。 // Rotate towards target var targetPoint = 。 var targetRotation = (targetPoint ,)。 //求出與目標(biāo)之間的角度 = (, targetRotation, * )。 //旋轉(zhuǎn)之角 度與目標(biāo)對齊 //If we are almost rotated towards target fire one clip of ammo var forward = ()。 var targetDir =。 //求出 2 者之間的距離 if(((forward, targetDir) )||(((forward, targetDir) ))) //這邊是自動開炮的效果 { cun_time++。 if(cun_time==100) { var clone : Rigidbody。 clone = Instantiate(bullet, , 安康學(xué)院畢業(yè)論文(設(shè)計) 24 )。 = (*bullspeed)。 cun_time=0。 } } if(((, ) attackRange)) //發(fā)現(xiàn)目標(biāo)而且在范圍之內(nèi),開始追擊目標(biāo) { var targetPoint1 = 。 //Calculation the angle with target var targetRotation1 = (targetPoint1 ,)。 //Rotated Itself then make a line with target = (, targetRotation1, * )。 (*)。 } } function CanSeeTarget (): //計算是否被發(fā)現(xiàn) { if ((, ) attackRange) return false。 var hit : RaycastHit。 if ( (, , hit)) return == target。 return false。 } 保存后拖給 Copter,這時 Inspector 面板中 Enemy Contol(Script)下有 6 項,分別是 Enemy_tank ,Firepoint ,Bullet ,Bullletspeed ,Attack range ,Target 。都需要我們從外部賦值 ,將敵方戰(zhàn)機(jī) Copter 拖放到Enemy_tank 后賦給它;將 Copter 中的 FirePoint 拖到 Firepoint 后的位游戲的設(shè)計與實現(xiàn) 25 置賦給此項; Bullet 是子彈,當(dāng)然將 Prefab 中的 daodan 賦給它;Bulletspeed 為子彈的速度,已在程序中賦值為 350,當(dāng)然也可以在此處修改,運行時以外部賦值為主; Attack Range 為敵方戰(zhàn)機(jī)能夠發(fā)現(xiàn)玩家的范圍,只有玩家 Player 接近它 400 范圍時,它才能夠發(fā)現(xiàn)玩家,并向玩家開火; Target 表示目標(biāo)對象,敵人的目標(biāo)當(dāng)然就是玩家 Player 了,將 Player 拖到該項之后的位置。 ( 3)敵方戰(zhàn)機(jī)的血量及擊毀設(shè)計 在 Scripts 文件夾中新建一個 JavaScript文件命名為 EnemyDestroy,其代碼如下: var explosionPrefab: Transform。 var Health=50。 var score=1。 function OnCollisionStay(collision : Collision) { if () { Health=10。 } if(Health=0) { +=score。 Destroy(gameObject)。 Instantiate(explosionPrefab,dentity)。 } } 保存并將其拖給敵方戰(zhàn)機(jī) Copter ,選中 Copter,將 Prefab 中的 exp2拖放到 Inspector 面板中 Enemy Destroy 屬性下的 Explosion Prefab 后的位置。此程序給敵方戰(zhàn)機(jī)設(shè)計了生命值 Health 為 50 , Health 降為 0后銷毀該戰(zhàn)機(jī),同時調(diào)用爆炸效果 exp2 ,而且玩家可以獲相應(yīng)的得分。得分 score 可從外部賦值,可將該程序拖給所有敵方角色,不同角色的血量得分不同,可從外部修改。程序中的 是 g_Control 程序中的 Score 變量, g_Control 是在 GUI 設(shè)計時控制玩家血量及得分的程序,在 GUI 設(shè)計中詳細(xì)說明。 添加好程序之后,建一個名為 Copter 的 prefab,將 Copter 拖給它,安康學(xué)院畢業(yè)論文(設(shè)計) 26 按 Ctrl+D 復(fù)制 6 個,分別放到場景中適當(dāng)位置即可。 ( 4)敵方炮臺及戰(zhàn)艦的設(shè)計 敵方的炮臺及戰(zhàn)艦的設(shè)計與戰(zhàn)機(jī)基本相同,都需要建一個 cube,將 Z軸調(diào)整好后放入 cube 中,再把 cube 改名為 Cannon 和 Boat。只是炮臺和戰(zhàn)艦不能移動,只須新建一個 CannonControl 腳本,將戰(zhàn)機(jī) AI程序 中的追擊代碼刪除即可,將腳本拖給炮臺的 Paoshen 部件。戰(zhàn)艦要設(shè)置 10 發(fā)射點,所以要將此程序直接拖給戰(zhàn)艦的 FirePoint, 然后將此 FirePoint復(fù)制 10 份,分別放在戰(zhàn)艦的適當(dāng)位置。 EnemyDestroy 程序直接拖給 Cannon 和 Boat 即可,只是在 Boat 上可從外部將 Health 設(shè)為 500 , Score 設(shè)為 10 。 GUI 的設(shè)計 玩家血條的設(shè)計 在 Project 中創(chuàng)建一個 GUI 文件夾,將用 photoshop 做好的條血圖片復(fù)制到該文件夾中。分別為 h00,h10,h20?? h100 十張圖片,顯示的血量由少到多。選中任一圖片,點擊 GameObjectCreate OtherGUI Texture,就能在屏幕上顯示該血條。層次面板中出現(xiàn) GUI Texture,將其改名為 g_Health ,在 Inspector 面板中 Transform 下 position 的 X,Y,Z的值分別設(shè)為 , , 0 。 X 的值表示與屏幕左邊的距離, Y 的值表示與屏幕下邊的距離, Z 表示與屏幕前面的距離。 在 Scripts 文件夾中,新建一個 JavaScript 腳本,命名為HealthControl,其代碼如下: var h00: Texture2D。 var h10: Texture2D。 var h20: Texture2D。 var h30: Texture2D。 var h40: Texture2D。 var h50: Texture2D。 var h60: Texture2D。 var h70: Texture2D。 var h80: Texture2D。 var h90: Texture2D。 var h100: Texture2D。 游戲的設(shè)計與實現(xiàn) 27 static var HEALTH = 100。 function Update() { switch(HEALTH) { case 100: =h100。 break。 case 90: =h90。 break。 case 80: =h80。 break。 case 70: =h70。 break。 case 60: =h60。 break。 case 50: =h50。 break。 case 40: =h40。 break。 case 30: =h30。 break。 case 20: =h20。 break。 case 10: =h10。 break。 case 0: 安康學(xué)院畢業(yè)論文(設(shè)計) 28 =h00。 break。 } } 保存后將程序拖給 g_Health ,分別將 GUI 文件夾中的圖片 h00到 h100拖到 Inspector 面板中 Health Control(Script)下的 H00 到 H100 這 10項的后 邊對應(yīng)位置。此程序會跟據(jù) HEALTH 值的變化而顯示相應(yīng)的血條在屏右上角位置,在 PlayerDestroy 程序中調(diào)用此程序中的 HEALTH,使它的值在敵人擊中時減少。 血量及得分顯示 在 Scripts 中建一名為 g_Control 的腳本,代碼如下: static var Score=0。 function OnGUI() { =。 (Rect(30,30,80,40),HEALTH:+LTH)。//Rect 后括號內(nèi)分別為左邊距,上邊距,寬,高 。 (Rect(30,60,80,40),SCORE:+Score)。 } 在游戲場景中建一空對象,取名為 menu ,將此代碼拖給 menu,游戲運行時雖然看不見 menu 這個游戲?qū)ο?,但其上的程序?qū)⒁恢北粓?zhí)行,在屏 幕 的 左 上 角 顯 示 血 量 及 得 分 。 血 量 為HealthControl 程序中的變量,上面已介紹。玩家得分則是此程序變量,但值的變在 EnemyDestroy 程序中,當(dāng)敵方單位被擊毀時會增加相應(yīng)得分。 游戲勝利或結(jié)束時的 GUI 按鈕 在 Scripts 中建一名為 g_Win 的腳本,其代碼如下: private var menuShow:boolean。 function Start() { =0。} function Update() { if(()) { menuShow=false。 (0)。 游戲的設(shè)計與實現(xiàn) 29 } if(==20) { menuShow=true。 } } function OnGUI() { if (menuShow==false) { return。 } if((Rect(,50,100,50),YOU WIN)) { (0)。 menuShow=false。 } 保存將其拖給 menu,此程序當(dāng) 為 20,也就是玩家得分為 20 時,將在屏幕中間顯示“ YOU WIN”這個按鈕,點擊該按鈕或按ESC 鍵,將進(jìn)入第 0 層場景,也就是開始場景。 游戲結(jié)束時“ GAME OVER”按鈕的代碼 g_Over 與勝利時“ YOU WIN”按鈕的代碼 g_Win 基本相同,只是程序中當(dāng) 為 0時,也就是玩家血量為 0 時,在屏幕中間顯示“ GAME OVER”按鈕,點擊則進(jìn)入第 0 層場景。 醫(yī)療箱的設(shè)計 醫(yī)療箱設(shè)計比較簡單,只是在場景中建一個 Cube,名為 addhealth,縮放后添加紅十字 材質(zhì),外形就做好了。同樣在 Scripts 中建一個名為AddHealth 的腳本,代碼如下: var explosionPrefab: Transform。 var Health=10。 function OnCollisionStay(collision : Collision) { if () { Health=10。} if(Health=0) 安康學(xué)院畢業(yè)論文(設(shè)計) 30 { if(70) +=30。 else =100。 Destroy(gameObject)。 Instantiate(explosionPrefab,dentity)
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1