手机游戏,尤其是mmo类的有,都少不了虚拟游戏摇杆。今天我们来学习如何利用Unity3d自带的摇杆组件,实现利用摇杆来控制角色的移动。
今天所用到的例子参考了网上的一个教程(http://www.unitymanual.com/thread-5189-1-1.html),原文用javascript实现了。我这里用c#来实现
(本文可以随意分享,请注明出处http://blog.csdn.net/janeky/article/details/17326711,谢谢!)
using UnityEngine; using System.Collections; public class PlayerController : MonoBehaviour { //角色 public GameObject player; //摇杆 public Joystick joystick; void Update() { //摇杆没有被触发 if (joystick.tapCount <= 0) { return; } //获取摇杆偏移 var joyPositionX = joystick.position.x; var joyPositionY = joystick.position.y; if (joyPositionY != 0 || joyPositionX != 0) { //设置角色的朝向(朝向当前坐标+摇杆偏移量) player.transform.LookAt(new Vector3(player.transform.position.x + joyPositionX, player.transform.position.y, player.transform.position.z + joyPositionY)); //移动玩家的位置(按朝向位置移动) player.transform.Translate(Vector3.forward * Time.deltaTime * 5); //播放奔跑动画 player.animation.Play("run"); } else { //播放待机动画 player.animation.Play("idle"); } } }
主要思路:记录触摸的位置,记录相关的偏移量。与此相关联的是GUI Texture组件。
http://pan.baidu.com/s/1GMnyQ