unity實(shí)現(xiàn)手機(jī)端搖桿控制人物移動(dòng)
前言
玩過王者榮耀或者荒野行動(dòng)的人,都知道,手機(jī)左下方或右下方都會(huì)有一個(gè)搖桿,滑動(dòng)搖桿可以讓人物向360度方向移動(dòng)。沒有玩過的可以看看下方圖片(荒野行動(dòng)手機(jī)端為例)。本篇就來講解如何使用unity制作搖桿控制人物移動(dòng)。
2種方法:
1.GUITexture制作,是unity自帶的一個(gè)joystick組件,主要由GUITexture和一個(gè)JS腳本構(gòu)成。優(yōu)點(diǎn):unity自帶,使用簡(jiǎn)單方便。缺點(diǎn)是無法適應(yīng)屏幕大小。
2.EasyTouch插件,可以實(shí)現(xiàn)1的功能并且克服了1的缺陷,可以適應(yīng)屏幕大小。本篇文章也是主要講解使用easyTouch插件實(shí)現(xiàn)搖桿控制人物移動(dòng)。
準(zhǔn)備
1.導(dǎo)入easyTouch包。在網(wǎng)上下載easyTouch的package,然后import到項(xiàng)目中,這時(shí)候,菜單會(huì)出現(xiàn)Tools。這時(shí)候搖桿我們具備了。
2.導(dǎo)入人物。unity功能超級(jí)強(qiáng)大,自帶一個(gè)人物模型,叫Ethan。這個(gè)時(shí)候要導(dǎo)入Standard Assets。里面就有Ethan模型(具體在Standard Assets--character--ThirdPersonCharacter--Models--Ethan)。
具體實(shí)現(xiàn)
1.點(diǎn)擊菜單中的tools--Hedgehog Team--EasyTouch--Extensions--Add a new joystick,這時(shí)候scene中就有了一個(gè)搖桿。
2.導(dǎo)入Ethan,找到Ethan直接拖到scene中就OK。
3.joystick參數(shù)設(shè)置和介紹見下圖
3.寫腳本,綁定到人物Ethan上。
using UnityEngine; using System.Collections; public class MoveController : MonoBehaviour { void OnEnable() { EasyJoystick.On_JoystickMove += OnJoystickMove; EasyJoystick.On_JoystickMoveEnd += OnJoystickMoveEnd; } //移動(dòng)搖桿結(jié)束 void OnJoystickMoveEnd(MovingJoystick move) { //停止時(shí),角色恢復(fù)狀態(tài)為idle if (move.joystickName == "MoveJoystick") { GetComponent<Animation>().CrossFade("idle"); } } //移動(dòng)搖桿中 void OnJoystickMove(MovingJoystick move) { if (move.joystickName != "MoveJoystick") { return; } //獲取搖桿中心偏移的坐標(biāo) float joyPositionX = move.joystickAxis.x; float joyPositionY = move.joystickAxis.y; //搖桿中心位置只要產(chǎn)生變動(dòng),即只要對(duì)搖桿進(jìn)行操作 if (joyPositionY != 0 || joyPositionX != 0) { //移動(dòng)玩家的位置(按朝向位置移動(dòng)) transform.Translate(Vector3.forward * Time.deltaTime * 100); //播放奔跑動(dòng)畫 GetComponent<Animation>().CrossFade("run"); } } } #endregion
4.由于腳本中人物的移動(dòng)是播放動(dòng)畫,unity本身就有很多走啊、跑啊、靜止的一些動(dòng)畫,所以我們現(xiàn)在為Ethan添加動(dòng)畫(animation)。如下圖所示:
5.由于我們的游戲是純第一人稱游戲,所以是不需要再游戲中看到自己的。所以為Ethan添加First Person Controller的腳本。(這個(gè)根據(jù)項(xiàng)目需要而定)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C# winfrom實(shí)現(xiàn)讀取修改xml
這篇文章主要為大家詳細(xì)介紹了C# winfrom實(shí)現(xiàn)讀取修改xml的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05C#實(shí)現(xiàn)的簡(jiǎn)單鏈表類實(shí)例
這篇文章主要介紹了C#實(shí)現(xiàn)的簡(jiǎn)單鏈表類,涉及C#針對(duì)鏈表的定義、實(shí)現(xiàn)及鏈表節(jié)點(diǎn)的增加、刪除與修改技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08