亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Unity3D引擎實現(xiàn)游戲人物的基本操控

        2016-12-12 10:21:42邱竟峰王洪源陳慕羿
        中國新技術(shù)新產(chǎn)品 2016年19期
        關(guān)鍵詞:腳本攝像機動畫

        邱竟峰 王洪源 陳慕羿

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

        Unity3D引擎實現(xiàn)游戲人物的基本操控

        邱竟峰 王洪源 陳慕羿

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

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

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

        1.人物移動的實現(xiàn)

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

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

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

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

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

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

        2.下面介紹人物攻擊動畫的實現(xiàn)

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

        添加完成后會在原動畫后面出現(xiàn)拆分后的動畫。

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

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

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

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

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

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

        TP311

        A

        猜你喜歡
        腳本攝像機動畫
        酒駕
        做個動畫給你看
        安奇奇與小cool 龍(第二回)
        動畫發(fā)展史
        我的動畫夢
        文苑(2019年22期)2019-12-07 05:28:56
        數(shù)據(jù)庫系統(tǒng)shell腳本應(yīng)用
        電子測試(2018年14期)2018-09-26 06:04:24
        看監(jiān)控攝像機的4K之道
        快樂假期
        攝像機低照成像的前世今生
        新安訊士Q6155-E PTZ攝像機
        婷婷久久国产综合精品| 亚洲欧洲日产国码久在线观看| 久久亚洲午夜牛牛影视| 日本五十路熟女在线视频| 亚洲性日韩一区二区三区| 久久99热国产精品综合| 97日日碰人人模人人澡| 色欲av亚洲一区无码少妇| 国产成人精品麻豆| 老熟女重囗味hdxx70星空| 免费看泡妞视频app| 亚洲中文欧美日韩在线人| 亚洲av人片在线观看调教| 日韩在线不卡一区三区av| 久久黄色视频| 337p日本欧洲亚洲大胆| 又爽又黄又无遮挡的激情视频 | 肉色丝袜足j视频国产| 欧美大成色www永久网站婷| 亚洲国产精品无码久久电影| 国产精品亚洲av网站| 国产亚洲专区一区二区| 人人超碰人人爱超碰国产| 99精品国产一区二区三区a片| 无码任你躁久久久久久| 国产在线拍偷自拍偷精品| 亚洲精品在线观看自拍| 在线观看视频日本一区二区 | 精品推荐国产精品店| 69搡老女人老妇女老熟妇| 中文字幕一区二三区麻豆| 免费在线观看av不卡网站 | 色两性网欧美| 亚洲av天堂久久精品| 护士人妻hd中文字幕| 亚洲精品美女久久777777| 亚洲 暴爽 av人人爽日日碰| 欧美人与物videos另类| 精品人妻在线一区二区三区在线| 欧美颜射内射中出口爆在线| 日韩精品一区二区三区免费视频 |