手机游戏,尤其是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
分享到:
相关推荐
本文实例为大家分享了unity实现手游虚拟摇杆的具体代码,供大家参考,具体内容如下 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; /// <summary> /// ...
Unity3d手机游戏开发经常用到的插件,easy touch5插件是非常实用的,可以很容易实现手游的虚拟摇杆功能控制游戏人物的走动方向。但此插件在Asset Store中是收费的,大约20美元,在这里我为同学们奉献出来了,记得...
总结起来,"Unity3D+EasyTouch v5.0.8.unitypackage+摇杆插件"是为移动游戏开发者提供的一款强大工具,它简化了触摸事件的处理,特别是通过虚拟摇杆组件,提升了移动设备上的游戏控制体验。利用这款插件,开发者可以...
本文将深入探讨Unity中的虚拟摇杆插件——EasyTouch,帮助开发者更好地理解和使用这一工具,提升游戏体验。 EasyTouch是一款专门为Unity设计的触摸输入管理插件,它提供了高度自定义的虚拟摇杆和按钮功能,适用于...
unity3d实现虚拟摇杆,-
Unity插件实现刮刮卡/刮刮乐效果是一种在游戏或互动应用中常见的交互功能,它通常用于模拟现实生活中刮开覆盖层以揭示隐藏信息的行为。这款插件因其功能强大和适用广泛而备受关注,尤其适合于开发各种类型的游戏和...
"Unity UGUI实现的一个简单的虚拟摇杆操作"这个项目可能包括以下关键知识点: 1. **UGUI基础**:首先,你需要了解UGUI的基本概念,如Canvas(画布)、RectTransform(矩形变换)以及各种UI元素组件,如Image(图像...
标题中的“实现Arduino和Unity的通信的unity插件”指的是一个专门用于连接Unity游戏引擎与Arduino硬件的插件,名为Ardity。这个插件旨在让开发者能够利用Unity的强大3D渲染和交互能力,结合Arduino的物理输入和输出...
Unity3d 插件实现半透明效果绘制被遮挡部分 Unity3d 是一个流行的游戏引擎,它提供了强大的功能来创建交互式3D内容。 Unity3d 插件是 Unity3d 的一个重要组件,可以扩展 Unity3d 的功能,实现特定的效果。今天,...
本文将详细介绍如何在Unity3D中实现一个轻量级的虚拟摇杆,并探讨其背后的实现原理和技术要点。 #### 一、虚拟摇杆概述 虚拟摇杆是一种模拟实体游戏手柄摇杆功能的用户界面元素,它通常用于移动设备上,以替代物理...
Unity翻书插件是专为Unity游戏引擎设计的一款工具,旨在帮助开发者轻松地在虚拟环境中创建逼真的翻书效果。这个插件适用于Unity虚拟仿真项目,可以广泛应用于教育、娱乐、展示等多种领域,如虚拟图书馆、互动式故事...
最新Unity插件SteamVR Plugin steamvr_2_8_0.unitypackage最新Unity插件SteamVR Plugin steamvr_2_8_0.unitypackage最新Unity插件SteamVR Plugin steamvr_2_8_0.unitypackage最新Unity插件SteamVR Plugin steamvr_2_...
Unity NGUI虚拟摇杆功能,Joystick组件提供了两个托管:move和stop,move是移动事件,会传回一个Vector2,stop是停止事件
本教程针对的是希望使用Unity制作类似《王者荣耀》这种竞技类手游的初学者。《王者荣耀》是一款非常受欢迎的多人在线战斗竞技游戏,其画面精美、操作流畅,对游戏开发技术有较高的要求。 首先,我们来看“战斗地形...
unity高亮插件,内置渲染管线可用,unity2017及以上版本都能使用
《PaintCraft插件在Unity2D中的应用与实践》 Unity3D作为一款强大的游戏开发引擎,不仅在3D领域有着广泛的应用,2D游戏开发同样表现出色。在这个过程中,各种插件的出现极大地丰富了开发者的工具箱,提高了开发效率...
虚拟摇杆资源的下载,适用于各种手机平台的调用以及Unity3d的虚拟摇杆开放等。
"Unity 手机震动插件Vibration"正是为了满足这种需求而设计的,它不仅适用于安卓Android系统,还兼容苹果iOS系统,提供了比Unity内置震动功能更丰富的控制和体验。 Unity内置的Input系统虽然可以实现基本的设备震动...
2. **标记超链接**:找到超链接后,插件会使用Unity的TextMeshPro或者Unity内置的Text Mesh组件的特性,将这些链接转换成特殊格式,以便在渲染时能以不同的样式展示,如变为蓝色并加下划线。 3. **事件处理**:当...