999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Unity3D引擎實現游戲人物的基本操控

2016-12-12 10:21:42邱竟峰王洪源陳慕羿
中國新技術新產品 2016年19期
關鍵詞:動畫設置游戲

邱竟峰 王洪源 陳慕羿

(沈陽理工大學 信息科學與工程學院,遼寧 沈陽 110159)

Unity3D引擎實現游戲人物的基本操控

邱竟峰 王洪源 陳慕羿

(沈陽理工大學 信息科學與工程學院,遼寧 沈陽 110159)

Unity3D作為一款更加專注作品的快速實現和平臺推廣以及3D渲染效果的游戲開發引擎,跟隨移動平臺和Web平臺的迅速發展,搶占了大量市場份額。Unity3D不止限于單機平臺,還可以借助Photon等游戲引擎,實現Unity3D單機游戲的網絡化。本文所涉及的內容,就是使用Unity3D實現游戲中人物基本行為的控制。碰撞體 (Collider) 與剛體 (Rigidbody) 結合使用可以實現 Unity 中的物理特性。剛體 (Rigidbody) 使對象可以受物理控制,而碰撞體(Collider) 使對象可以相互碰撞。Animator可以將編輯動畫的控制,管理不同動畫之間的關聯。

Unity3D;游戲人物控制;人物攻擊

1.人物移動的實現

我們將事先準備好的游戲人物模型拖拽到Project的Assets文件夾下,然后將人物的靜止狀態模型拖入場景中。

然后在人物腳下Create Cube作為地面,取消Mesh Renderer選項,并給人物加上Rigidbody(注意Constrains中的Rotation選項,這會使物體碰撞后產生自由旋轉)以及Capsule Collider。以實現人物的正常移動,調節膠囊碰撞器參數,使其包裹人物。

下面,我們使用編輯腳本實現人物的移動的控制。

在腳本中,使用float H=Input. GetAxis(“Horizontal”),實行對人物水平方向移動的監聽,當在鍵盤上按下A或者D鍵時,會返回正或者負數值,以此值判斷人物的左右的移動方向。 float V=Input.GetAxis(“Vertical”)與前者類似,不過是通過W和S鍵判斷人物的前后移動。我們將它們放在update函式中,這樣系統每針都會不停的監聽人物的移動變化。我們使用if (Mathf.Abs(H) > 0.01f || Mathf.Abs(V)> 0.01f)來判斷人物是否移動,如果移動,賦予人物速度,控制人物面向方向,GetComponent<Rigidbody>(). velocity = new Vector3(velocity * h, this. GetComponent<Rigidbody>().velocity.y,velocity* v),此處,我們利用之前為人物添加的剛體組件,實現人物的速度控制,因為人物是在水平方向移動,所以使用this.GetComponent<Rigidbody>(). velocity.y,作為Y軸速度,也就是Y軸速度不變。使用transform.LookAt(new Vector3(h,0,v) + transform.position)實現人物面向方向的改變。接下來,我們在Assets下Create一個Animator Controller,并把它添加到人物的Animator中,作為人物播放的動畫控制器。

在Window中打開Animator,將導入的人物站立和移動的動畫拖拽到里面,使用bool值控制兩者的轉換,實現站立(Take0010)向跑步動畫(Take001)的轉換時,我們將bool設置為true,當由跑步轉換為站立時,設置為false。我們將anim.SetBool(“Move”, true)放在前面提到的判斷語句后(這里,anim是Animator對象)就是當鍵盤控制人物移動時,將人物狀態有站立設置為奔跑。當人物靜止時,我們要實現人物的速度歸零,并由奔跑轉為靜止狀態。因此,在if后面添加else語句,并添加GetComponent<Rigidbody>(). velocity = new Vector3(0, this.Get Component<Rigidbody>(), 0) 與anim. SetBool(“Move”, false)前者實現速度歸零后者設置人物狀態為站立。如圖1所示。

接著,我們調整攝像機位置,使攝像機跟隨人物移動。選擇合適視角,選中Main Camera,選擇Game Object下的 Align With View,使攝像機與當前視野保持一致。然后將人物的Tag設置為Player并為攝像機添加控制腳本,使用 Game Object. Find Game Object With Tag(“Player”)找到跟隨的人物,用transform.position設置攝像機的跟隨位置。

2.下面介紹人物攻擊動畫的實現

因為一些攻擊動畫是有一連串的攻擊實現的,所以這里我們先實現攻擊

添加完成后會在原動畫后面出現拆分后的動畫。

完成拆分后,選擇Animator ,添加新Layer,覆蓋之前實現人物站立、跑動的Layer,并添加一個Empty State(處于EmtyState時,之前設定的人物站立于跑動的效果就會起作用),然后將拆分的兩個動畫拖入到Animator中,使用Trigger作為3個狀態之間的轉換方式。這里沒有使用之前的Bool是因為,一旦使用Bool值作為轉換條件,當觸發第一次攻擊時,Boll設置為True,那么第二個攻擊效果就會自動出現,失去了拆分的意義。由攻擊效果轉換為Empty時,不需要額外設置,當攻擊結束時會自動轉換為Empty。如圖3所示。動畫的拆分。首先選中攻擊模型,右側Inspector中點擊Edit。這里我們使用的攻擊效果由兩個攻擊動作完成,所以我們將動畫拆成兩部分,點擊加號根據第一個動畫完成的時間,在Start和End位置添加參數,動畫確定后,點擊Apply。如圖2所示。

這里還有一點要注意,在設置動作之間的轉換時間的時候要注意選擇合適的時間間隔,使當連續觸發時,能夠實現連擊的效果。我們還是用腳本控制人物的攻擊。在新的腳本中,首先在start()中調用this. Get Component<Animator>()獲得加在人物身上的Animator。然后,這里我們添加簡單的條件判斷,實現動作的觸發。在update中添加if (Input. GetKey(“space”)),這樣,每幀都會進行按鍵檢測。如果檢測到按下按鍵,則調用之前在Animator中設置的SetTrigger(“Attack”)方法,這里Attack就是之前設置的Trriger參數的名字。

同時我們也可以為攻擊添加聲音效果,可以選擇直接把聲音添加在特效上,選中特效,點擊Add Component,選擇Audio Source,將想要加入的音效拖入到Audio Clip中。

我們也可以在腳本中添加音效,首先,Creat Empty,再為它添加Audio Source,新建音效控制腳本,在腳本中獲得Audio Source對象,然后調用Audio Source. Play One Shot(Sound Name)即可。這里我們可以把控制腳本設計成單例模式,本例中,聲音控制腳本命名為sManager,首先定義sManager對象instance,然后在Awake()中為其賦值:instance=this。這樣做的好處是使得instance成為sManager在系統中的唯一實例,節省了時間和資源。

[1]王洪源,等. Unity3D人工智能編程精粹[M].北京:清華大學出版社,2014.

[2]金璽曾. Unity3D手機游戲開發[M].北京:清華大學出版社,2013.

TP311

A

猜你喜歡
動畫設置游戲
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
做個動畫給你看
動畫發展史
我的動畫夢
文苑(2019年22期)2019-12-07 05:28:56
數獨游戲
瘋狂的游戲
飛碟探索(2016年11期)2016-11-14 19:34:47
爆笑游戲
我是動畫迷
學生天地(2016年9期)2016-05-17 05:45:06
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
主站蜘蛛池模板: 狠狠v日韩v欧美v| 亚洲欧美成aⅴ人在线观看| 欧美成人日韩| 最新国产网站| 精品国产黑色丝袜高跟鞋| 在线视频亚洲色图| 国产精品九九视频| 亚洲六月丁香六月婷婷蜜芽| 亚洲精品图区| 精品国产黑色丝袜高跟鞋 | 中国精品自拍| 青青青视频91在线 | 无码日韩视频| 国产后式a一视频| 国产福利2021最新在线观看| 国产一区二区三区免费观看| 亚洲国产欧洲精品路线久久| 国产裸舞福利在线视频合集| 性色在线视频精品| 青草国产在线视频| 在线观看免费国产| 人妻精品全国免费视频| 精品撒尿视频一区二区三区| 欧美三级不卡在线观看视频| 成人中文字幕在线| 伊人久久综在合线亚洲91| 日韩欧美中文字幕在线韩免费 | 91精品伊人久久大香线蕉| 午夜福利视频一区| 九九香蕉视频| 国产一级精品毛片基地| 欧美在线视频不卡第一页| 在线中文字幕网| 亚洲无码免费黄色网址| 国产青榴视频在线观看网站| 欧美一级色视频| 日本精品视频| 国产噜噜噜| 国产99在线| 精品亚洲麻豆1区2区3区| 日本亚洲国产一区二区三区| 无码AV高清毛片中国一级毛片 | 国产人免费人成免费视频| 一本一道波多野结衣一区二区| 亚洲三级电影在线播放| 国产成人av一区二区三区| 国产成人高精品免费视频| 毛片免费高清免费| 91久久偷偷做嫩草影院免费看| 国产精品视频系列专区| 激情亚洲天堂| 亚洲娇小与黑人巨大交| 欧美另类精品一区二区三区| 2020久久国产综合精品swag| 精品一区二区三区视频免费观看| 欧美日韩国产综合视频在线观看| 免费无码网站| 亚洲综合香蕉| 99精品视频九九精品| 大学生久久香蕉国产线观看| 天堂岛国av无码免费无禁网站| 欧美爱爱网| 手机看片1024久久精品你懂的| 91在线播放免费不卡无毒| AV色爱天堂网| 精品一区二区三区自慰喷水| 综合色88| 香蕉蕉亚亚洲aav综合| 国产在线观看高清不卡| 99re热精品视频国产免费| 日本不卡在线| 国产男人天堂| 国产亚洲精| 自拍亚洲欧美精品| 亚洲精品成人福利在线电影| 92午夜福利影院一区二区三区| 1769国产精品免费视频| 久久精品人妻中文系列| 四虎成人免费毛片| 制服丝袜国产精品| 国产午夜福利片在线观看| 好久久免费视频高清|