




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
模塊二:使用物理引擎項目七:角色控制器—控制角色運動UnityGameEngineUNITY模塊二使用物理引擎剛體——力的模擬碰撞體——物體碰撞檢測角色控制器——控制角色運動物理材質與射線——射線技術應用項目五項目六項目七項目八關節——關節模擬動畫項目九任務概述虛擬數字人展示了數字技術的強大和多樣性,它們可以像真實世界的人一樣做出各種動作。而游戲中的角色除了會有移動、爬樓梯等各種動作之外,還常常要與物體或其余的角色進行交互,這都需要用到角色控制器。本項目主要介紹物理引擎中角色控制器的使用以及如何在不同視角下進行角色運動控制。行業PPT模板/hangye/學習目標011.能夠正確設置角色控制器的屬性參數2.能夠正確應用角色控制器函數制作角色移動動畫教學目標重難點重點:角色控制器的使用難點:角色控制函數的應用項目實現02任務1:第三人稱視角控制角色移動1.利用Plane、Cube和Capsule搭建場景,場景中膠囊代表角色,右側的臺階高度為0.5,最上層的臺階高度為1,左側的斜坡坡度分別為30度和60度,正面的斜坡坡度為45度,其余場景可自行設計。制作步驟提示2.選中膠囊,移除自帶的膠囊碰撞體組件,為其添加一個角色控制器組件CharacterController。項目實現02任務1:第三人稱視角控制角色移動3.為膠囊添加ccController腳本。4.在膠囊的角色控制器組件中,設置允許其爬坡的角度(SlopeLimit)為45度,允許其行走的臺階高度(StepOffset)為0.5。制作步驟提示voidUpdate(){if(cc.isGrounded)//判斷角色是否在地面
{if(Input.GetKey(KeyCode.D))//按D鍵向右走
{cc.Move(Vector3.right*speed*Time.deltaTime);}if(Input.GetKey(KeyCode.A))//按A鍵向左走
{cc.Move(Vector3.left*speed*Time.deltaTime);}if(Input.GetKey(KeyCode.W))//按W鍵向前走
{cc.Move(Vector3.forward*speed*Time.deltaTime);}if(Input.GetKey(KeyCode.S))//按S鍵向后走
{cc.Move(Vector3.back*speed*Time.deltaTime);}}else{cc.Move(Vector3.down*speed*Time.deltaTime);//若不在地面,則讓其落到地面
}}}publicclassccController:MonoBehaviour{publicfloatspeed=3;//設置移動速度
privateCharacterControllercc;//聲明角色控制器
voidStart(){cc=GetComponent<CharacterController>();
}
項目實現02任務1:第三人稱視角控制角色移動5.為攝像機添加follow腳本,制作攝像機跟隨動畫。6.運行游戲,可以實現第三人稱角色的移動。制作步驟提示usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassfollow:MonoBehaviour{publicTransformmyTransform;privateVector3distance;voidStart(){distance=transform.position-myTransform.position;}voidUpdate(){transform.position=myTransform.position+distance;}}項目實現02任務1:第三人稱視角控制角色移動7.將膠囊移動的代碼簡化,更改為CCMove,仍然可以實現第三人稱角色的移動。制作步驟提示usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassCCMove:MonoBehaviour{privateCharacterControllercc;privatefloatspeed=5f;voidStart(){cc=GetComponent<CharacterController>();}voidUpdate(){floatx=Input.GetAxis("Horizontal");floaty=Input.GetAxis("Vertical");cc.SimpleMove(newVector3(x*speed,transform.localPosition.y,y*speed));}}項目實現02任務2:第一人稱視角控制角色移動1.用與上一任務同樣的方法布置場景。制作步驟提示2.在場景中添加若干個Cube和Sphere,并為他們添加Rigidbody(剛體)組件。3.為攝像機添加CharacterController(角色碰撞器)組件。項目實現02任務2:第一人稱視角控制角色移動4.為主攝像機添加CCMove腳本。5.運行游戲,可以實現第一人稱視角角色的移動。制作步驟提示voidUpdate(){transform.Rotate(newVector3(0,Input.GetAxis("Horizontal")*rotateSpeed,0));
Vector3forward=transform.TransformDirection(Vector3.forward);
cc.SimpleMove(forward*speed*Input.GetAxis("Vertical"));
}privatevoidOnControllerColliderHit(ControllerColliderHithit)
{Rigidbodyrig=hit.collider.attachedRigidbody;
if(rig==null||rig.isKinematic)return;if(hit.moveDirection.y<-0.3f)
return;
Vector3pushDirection=newVector3(hit.moveDirection.x,0,hit.moveDirection.z);
rig.velocity=pushDirection*pushForce;
}}publicclassCCMove:MonoBehaviour{publicfloatspeed=5f;//角色移動速度
publicfloatpushForce=5f;//推動物體的力量
publicfloatrotateSpeed=3f;//角色轉身速度
privateCharacterControllercc;voidStart(){cc=GetComponent<CharacterController>();}
項目實現02任務3:實現上帝視角1.新建一個大一些的plane,在上面放一些Cube,利用給出的素材為其添加材質。2.調整攝像機的高度和角度,讓其顯示部分場景。制作步驟提示項目實現02任務3:實現上帝視角3.為主攝像機添加CameraController腳本。制作步驟提示
floatmovez=Input.GetAxis("MouseY");Vector3cameraPos=Camera.transform.position;cameraPos-=newVector3(movex*moveSpeed,0,0);cameraPos-=newVector3(0,0,movez*moveSpeed);if(cameraPos.x>moveRangeX.x&&cameraPos.x<moveRangeX.y&&cameraPos.z>moveRangeZ.x&&cameraPos.z<moveRangeZ.y){Camera.transform.position=cameraPos;}}floatscrollWheelValue=Input.GetAxis("MouseScrollWheel");if(scrollWheelValue!=0)//按鼠標中鍵實現場景的縮放
{Vector3cameraPos=Camera.transform.position;cameraPos+=Camera.transform.forward*scrollWheelValue*moveSpeed*5;if(cameraPos.y>moveRangeY.x&&cameraPos.y<moveRangeY.y&&cameraPos.z>moveRangeZ.x&&cameraPos.z<moveRangeZ.y){Camera.transform.position=cameraPos;}}}}usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassCameraController:MonoBehaviour{publicGameObjectCamera;//聲明攝像機游戲物體
publicVector2moveRangeX;//聲明攝像機的移動范圍
publicVector2moveRangeY;publicVector2moveRangeZ;publicfloatmoveSpeed=1;//聲明攝像機的移動速度voidUpdate(){if(Input.GetMouseButton(1))
{floatmovex=Input.GetAxis("MouseX");項目實現02
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年蜂鳴器環保漆包線項目可行性研究報告
- 2025年聚酰亞胺薄膜項目可行性研究報告
- 2025-2030中國汽車沖壓件行業市場發展分析與發展趨勢及投資風險研究報告
- 2025-2030中國棉制嬰兒服裝行業市場深度調研及發展趨勢與投資前景研究報告
- 2025-2030中國核成像系統行業市場發展趨勢與前景展望戰略研究報告
- 2025-2030中國機器人康復和輔助技術行業市場發展趨勢與前景展望戰略研究報告
- 2025-2030中國有創胎兒監護行業市場發展趨勢與前景展望戰略研究報告
- 2025-2030中國智慧燃氣行業市場發展分析及發展趨勢與投資研究報告
- 2025-2030中國施工進度計劃軟件行業市場發展趨勢與前景展望戰略研究報告
- 2025-2030中國整體食品吧行業市場發展趨勢與前景展望戰略研究報告
- 第十七章 勾股定理 -利用勾股定理求最短路徑問題(教案)-2023-2024學年人教版數學八年級下冊
- 2024年社區工作者面試題庫與答案
- 銷售人員工資方案底薪+提成+獎金
- DB34∕T 3221-2018 火災高危單位消防安全評估規程
- 地震監測設備維護保養手冊
- 上海市市轄區(2024年-2025年小學四年級語文)統編版期中考試((上下)學期)試卷及答案
- 2024北京西城區初三一模語文試卷和答案
- ISO∕IEC 23894-2023 信息技術 -人工智能 - 風險管理指南(雷澤佳譯-2024)
- DL∕T 5370-2017 水電水利工程施工通 用安全技術規程
- 唱歌《乘著歌聲的翅膀》教案-貴州省施秉縣第三中學人教版九年級音樂下冊
- 幼兒園童話故事《海的女兒》課件
評論
0/150
提交評論