`
20386053
  • 浏览: 461575 次
文章分类
社区版块
存档分类
最新评论

Unity手游之路<五>虚拟摇杆之Unity内置插件实现

 
阅读更多

手机游戏,尤其是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实现手游虚拟摇杆

    本文实例为大家分享了unity实现手游虚拟摇杆的具体代码,供大家参考,具体内容如下 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; /// &lt;summary&gt; /// ...

    Unity3d 虚拟摇杆(轮盘)easy touch资源包(插件)

    Unity3d手机游戏开发经常用到的插件,easy touch5插件是非常实用的,可以很容易实现手游的虚拟摇杆功能控制游戏人物的走动方向。但此插件在Asset Store中是收费的,大约20美元,在这里我为同学们奉献出来了,记得...

    Unity3D+EasyTouch v5.0.8.unitypackage+摇杆插件

    总结起来,"Unity3D+EasyTouch v5.0.8.unitypackage+摇杆插件"是为移动游戏开发者提供的一款强大工具,它简化了触摸事件的处理,特别是通过虚拟摇杆组件,提升了移动设备上的游戏控制体验。利用这款插件,开发者可以...

    虚拟摇杆(EasyTouch).rar

    本文将深入探讨Unity中的虚拟摇杆插件——EasyTouch,帮助开发者更好地理解和使用这一工具,提升游戏体验。 EasyTouch是一款专门为Unity设计的触摸输入管理插件,它提供了高度自定义的虚拟摇杆和按钮功能,适用于...

    u3d虚拟摇杆的实现

    unity3d实现虚拟摇杆,-

    Unity插件 实现 刮刮卡/刮刮乐 效果

    Unity插件实现刮刮卡/刮刮乐效果是一种在游戏或互动应用中常见的交互功能,它通常用于模拟现实生活中刮开覆盖层以揭示隐藏信息的行为。这款插件因其功能强大和适用广泛而备受关注,尤其适合于开发各种类型的游戏和...

    Unity UGUI实现的一个简单的虚拟摇杆操作

    "Unity UGUI实现的一个简单的虚拟摇杆操作"这个项目可能包括以下关键知识点: 1. **UGUI基础**:首先,你需要了解UGUI的基本概念,如Canvas(画布)、RectTransform(矩形变换)以及各种UI元素组件,如Image(图像...

    实现Arduino和Unity的通信的unity插件

    标题中的“实现Arduino和Unity的通信的unity插件”指的是一个专门用于连接Unity游戏引擎与Arduino硬件的插件,名为Ardity。这个插件旨在让开发者能够利用Unity的强大3D渲染和交互能力,结合Arduino的物理输入和输出...

    Unity3d插件实现半透明效果

    Unity3d 插件实现半透明效果绘制被遮挡部分 Unity3d 是一个流行的游戏引擎,它提供了强大的功能来创建交互式3D内容。 Unity3d 插件是 Unity3d 的一个重要组件,可以扩展 Unity3d 的功能,实现特定的效果。今天,...

    基于Unity3D的虚拟摇杆

    本文将详细介绍如何在Unity3D中实现一个轻量级的虚拟摇杆,并探讨其背后的实现原理和技术要点。 #### 一、虚拟摇杆概述 虚拟摇杆是一种模拟实体游戏手柄摇杆功能的用户界面元素,它通常用于移动设备上,以替代物理...

    Unity翻书插件,应用于Unity虚拟仿真

    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_8_0.unitypackage最新Unity插件SteamVR Plugin steamvr_2_...

    Unity NGUI虚拟摇杆功能

    Unity NGUI虚拟摇杆功能,Joystick组件提供了两个托管:move和stop,move是移动事件,会传回一个Vector2,stop是停止事件

    Unity制作《王者荣耀》商业级手游视频教程

    本教程针对的是希望使用Unity制作类似《王者荣耀》这种竞技类手游的初学者。《王者荣耀》是一款非常受欢迎的多人在线战斗竞技游戏,其画面精美、操作流畅,对游戏开发技术有较高的要求。 首先,我们来看“战斗地形...

    unity高亮插件,内置渲染管线可用

    unity高亮插件,内置渲染管线可用,unity2017及以上版本都能使用

    PaintCraft插件 Unity2D涂鸦

    《PaintCraft插件在Unity2D中的应用与实践》 Unity3D作为一款强大的游戏开发引擎,不仅在3D领域有着广泛的应用,2D游戏开发同样表现出色。在这个过程中,各种插件的出现极大地丰富了开发者的工具箱,提高了开发效率...

    Unity3d移动设备虚拟摇杆资源

    虚拟摇杆资源的下载,适用于各种手机平台的调用以及Unity3d的虚拟摇杆开放等。

    Unity 手机震动插件Vibration

    "Unity 手机震动插件Vibration"正是为了满足这种需求而设计的,它不仅适用于安卓Android系统,还兼容苹果iOS系统,提供了比Unity内置震动功能更丰富的控制和体验。 Unity内置的Input系统虽然可以实现基本的设备震动...

    unity文本超链接实现插件

    2. **标记超链接**:找到超链接后,插件会使用Unity的TextMeshPro或者Unity内置的Text Mesh组件的特性,将这些链接转换成特殊格式,以便在渲染时能以不同的样式展示,如变为蓝色并加下划线。 3. **事件处理**:当...

Global site tag (gtag.js) - Google Analytics