手机游戏,尤其是mmo类的有,都少不了虚拟游戏摇杆。今天我们来学习如何利用Unity3d自带的摇杆组件,实现利用摇杆来控制角色的移动。
今天所用到的例子参考了网上的一个教程(http://www.unitymanual.com/thread-5189-1-1.html),原文用javascript实现了。我这里用c#来实现
(本文可以随意分享,请注明出处http://blog.csdn.net/janeky/article/details/17326711,谢谢!)
1.导入Character Controller组件,主要是用到其中的角色模型
2.导入Standard Assets(Mobile)组件,里面包含了Joystick组件
3.创建一个Gui Texture,命名为Joystick。设置它的材料Texture 为 Joystick Thumb
设置它的Pixel Inset .x,y Width,Hight
4.为Joystick添加脚本Joystick.cs
5.创建一个地形。不会的同学,可以直接引用到源码中的
6.将角色控制器中的Bip001加到Player上,初始化状态为idle
7.为Main Camera 添加 Smooth Follow脚本(角色控制器脚本中包含),使得摄像机可以跟随人物移动
8.为Main Camera添加自定义脚本 PlayerController.cs脚本
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");
}
}
}
Joystick.cs
代码比较多,就不详细列出。
主要思路:记录触摸的位置,记录相关的偏移量。与此相关联的是GUI Texture组件。
官方自带的摇杆组件比较简单,可以基本实现简单的功能。但是,也存在很多的局限,比如更换外观比较繁琐,无法自适应屏幕的大小确定相对位置,基于GUI layer。为此,下节我们将介绍一个功能更加强大的摇杆组件Easy Touch 3,敬请期待!
有任何问题欢迎一起探讨ken@iamcoding.com
http://pan.baidu.com/s/1GMnyQ
分享到:
相关推荐
该资源实现了 读取格式为 key string 的字典型xml.内含gif演示及 事例xml
本文实例为大家分享了unity实现手游虚拟摇杆的具体代码,供大家参考,具体内容如下 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; /// <summary> /// ...
Unity3d手机游戏开发经常用到的插件,easy touch5插件是非常实用的,可以很容易实现手游的虚拟摇杆功能控制游戏人物的走动方向。但此插件在Asset Store中是收费的,大约20美元,在这里我为同学们奉献出来了,记得...
Unity3D EasyTouch摇杆插件工具包
unity3d实现虚拟摇杆,-
本文实例为大家分享了Unity实现虚拟摇杆的具体代码,供大家参考,具体内容如下 面板上设置一些属性,比如摇杆拖拽的距离,是否始终可视,是否限制虚拟摇杆位置(我是把虚拟摇杆限制在了屏幕的左下区域)。 使用...
[手游] Unity3D《最后一战》全套完整源代码 + 资源
Unity NGUI虚拟摇杆功能,Joystick组件提供了两个托管:move和stop,move是移动事件,会传回一个Vector2,stop是停止事件
虚拟摇杆资源的下载,适用于各种手机平台的调用以及Unity3d的虚拟摇杆开放等。
微软Unity容器资料(Microsoft.Practices.Unity),里面包含了源代码(来自CodePlex...还有微软的Unity实现的讲义和一本有关于Unity使用参考的PDF书。这里面不是dll是源代码,需要的同学可以下载一下,vs2015亲测能用。
unity内置的消息队列rabbitmq插件,可直接调用
Unity UGUI实现的一个简单的虚拟摇杆操作
Unity 虚拟开发中需要的虚拟键盘插件,也可以自己在AssetStore下载,网络不佳的就在这下载吧!
Unity翻书插件,能够快速实现Unity翻书操作,
Unity3d插件实现半透明效果
实现Arduino和Unity的通信
Unity 结合部分插件功能实现读取PPT
unity3D动作RPG手游完整源码.zip
Unity UGUI 通过摇杆 joystick 控制角色移动(第三人称视角)包含资源和例子,要实现王者荣耀,英雄联盟手游第三人称跟随相机只需加 一句代码 **Vector3.Lerp()这一句代码** 或者直接**做成人物子物体**更简单粗暴