Unity3D插件之Easy Touch 3.1(1): Easy Joystick

Easy Touch是Unity3D的一个插件,它提供了易于使用的虚拟输入设备。其中的Easy Joystick是其中的一个组件,它可以让用户在移动设备上模拟一个搖桿的动作,并以此来控制游戏物体的行动。

## 安装

在Unity Asset Store中搜索Easy Touch,在搜索结果中选择Easy Touch,然后点击“Download”按钮进行下载和安装。一旦安装完成,Easy Touch会以一个UnityPackage的形式出现在项目的目录中。

## 使用方法

以下是使用Easy Joystick的步骤:

### 步骤1:引入EasyJoystick组件

打开Unity并创建一个新项目。打开包含Easy Touch的Unity Package文件,导入EasyJoystick组件。在导入过程中,确保"Easy Joystick"设置被选中。

### 步骤2:场景中创建EasyJoystick

在“Hierarchy”视图中,右键单击并选择"3D Object-> Plane"。在“Inspector”视图中编辑该平面使其适合场景。然后,在“Hierarchy”视图中,右键单击并选择“Create Empty”。这将创建一个空的游戏对象。重命名它为“JoystickContainer”。

### 步骤3:添加EasyJoystick脚本

从“Assets”视图的目录中拖动“EasyJoystick”脚本到“JoystickContainer”游戏对象上。您将看到该游戏对象已被添加到组件。

### 步骤4:设置EasyJoystick

在“Inspector”视图中,您将看到Easy Joystick的属性和选项。更改这些选项,以使Joystick符合您的游戏需要。根据需要可以设置thumbSize,downtime,移动限制等等。您还可以设置背景图片和手指图片以获取所需的外观效果。

### 步骤5:添加Joystick脚本

现在在“JoystickContainer”游戏对象上创建一个新脚本,重命名它为“Joystick”。添加以下代码:

```

using UnityEngine;

using System.Collections;

using HedgehogTeam.EasyTouch;

public class Joystick : MonoBehaviour {

public Transform character;

public float speed = 5.0f;

// Use this for initialization

void Start () {

EasyTouch.On_TouchDown += On_TouchDown;

EasyTouch.On_Drag += On_Drag;

}

// Update is called once per frame

void Update () {

}

void OnDestroy(){

EasyTouch.On_TouchDown -= On_TouchDown;

EasyTouch.On_Drag -= On_Drag;

}

void On_TouchDown(Gesture gesture){

// If the target of the touch is not the joystick, we do not handle the event

if (gesture.pickedObject != this.gameObject) return;

// The joystick is touched

this.GetComponent().MoveStart(gesture);

}

void On_Drag(Gesture gesture){

// We just pass the finger position to the joystick

this.GetComponent().Move(gesture);

}

}

```

### 步骤6:拖拽游戏对象并测试

将游戏对象放在地面上,将脚本“Joystick”分配给该游戏对象。目标游戏对象将被分配给脚本“Joystick”中的公共变量“character”。启动游戏并测试游戏对象是否响应搖桿手柄的滑动事件。

## 案例说明

以下是一个案例,演示了如何在Unity中使用Easy Joystick。

### 案例场景

游戏是一个驾驶模拟器,玩家必须驾驶一辆汽车,穿过一个城市,尽可能快地到达终点。玩家可以使用Easy Joystick控制汽车的移动。

### 实现步骤

1.创建Unity项目并导入EasyTouch插件。

2.创建一个Unity Plane并将其放置在场景中。Resize场景以适应您的需求。

3.导入城市开发套件并将其放置在场景中。

4.创建一个空的游戏对象,命名为“Joystick Container”。将此对象放在场景中的任何位置。

5.将EasyJoystick脚本添加到“Joystick Container”游戏对象。在“Inspector”视图中更改此脚本的属性以适应您的需求。

6.创建一个新的脚本并将其命名为“Joystick”。将以下代码复制到此脚本中:

```

using UnityEngine;

using System.Collections;

using HedgehogTeam.EasyTouch;

public class Joystick : MonoBehaviour {

public Transform car;

public float speed = 5.0f;

void Start () {

EasyTouch.On_TouchDown += On_TouchDown;

EasyTouch.On_Drag += On_Drag;

}

void OnDestroy(){

EasyTouch.On_TouchDown -= On_TouchDown;

EasyTouch.On_Drag -= On_Drag;

}

// Update is called once per frame

void Update () {

}

void On_TouchDown(Gesture gesture){

// If the target of the touch is not the joystick, we do not handle the event

if (gesture.pickedObject != this.gameObject) return;

// The joystick is touched

this.GetComponent().MoveStart(gesture);

}

void On_Drag(Gesture gesture){

//Acceleration value -1 to 1

float acceleration =this.GetComponent().JoystickValue.x;

//We multiply acceleration by speed

car.Translate(acceleration*Time.deltaTime*speed,0,0);

// We just pass the finger position to the joystick

this.GetComponent().Move(gesture);

}

}

```

7.将脚本“Joystick”添加到游戏对象“Joystick Container”。

8.将游戏对象“Car”分配给脚本“Joystick”中的公共变量“Car”。

9.在游戏视图中启动模拟器并测试游戏。

在该场景中,用户可以使用Easy Joystick控制汽车的移动。通过把搖桿的柄向右推动,汽车就会向前移动而且速度越大,搖桿就需要贴在更右边。同样,推左,汽车后退,速度越大,搖桿就需要贴在更左边。

壹涵网络我们是一家专注于网站建设、企业营销、网站关键词排名、AI内容生成、新媒体营销和短视频营销等业务的公司。我们拥有一支优秀的团队,专门致力于为客户提供优质的服务。

我们致力于为客户提供一站式的互联网营销服务,帮助客户在激烈的市场竞争中获得更大的优势和发展机会!

点赞(88) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部