Unity使用摇杆触屏控制

这篇博客介绍了如何在Unity中将键盘和鼠标操作转化为摇杆触屏控制,适用于移动平台的游戏项目。通过导入Standard Assets包,设置Canvas模式和Scaler,创建摇杆背景,并连接角色控制器,实现了摇杆移动和按钮射击功能。详细步骤包括设置摇杆预制件、自定义视觉效果以及调整输入脚本。
摘要由CSDN通过智能技术生成

参考来源

此例的目标:将一个游戏项目中操控由键盘wasd移动鼠标左键射击,转为摇杆触屏移动,点击button射击。

-------------------------------------------------------

注意:如果摇杆在某个canvas下记得该canvas用screen space - overlay模式(否则摇杆中心点不会随着屏幕走)。canvas scaler选择scale with screen size,screen match mode选择expand。(为了屏幕分辨率自适应)

 

首先导入Unity的Standard Assets包,然后在CrossPlatformInput文件夹→Prefabs下找到MobileSingleStickControl预制,拖入场景,它包含了一个左部的摇杆,一个右部的button。

 

如果拖到场景里不显示的话,在build setting里把platform转换成ios或者Android,然后在Mobile Input选项卡下点击Enable显示就好了。

 

上面的默认摇杆是没有背景的,通常我们熟知的摇杆有一个圆框,中间一个点状摇杆。所以现在我们给默认摇杆添加背景。

 

MobileSingleStickControl下新建图片,把摇杆的背景图放上去,然后把摇杆调整到背景图的中心,最后把背景放在最上部以最先渲染。

 

摇杆资源做好了,现在我们把摇杆和人物操纵联系起来。

 

修改好之后运行就可以移动摇杆来控制对象了。(我目前测的是鼠标操纵摇杆,还未在xcode上真机触屏测试)

其实标准资产里的摇杆包含一个image组件和joystick脚本,如下。

 

joystick脚本内容如下

using System;
using UnityEngine;
using UnityEngine.EventSystems;

namespace UnityStandardAssets.CrossPlatformInput
{
	public class Joystick : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IDragHandler
	{
		public enum AxisOption
		{
			// Options for which axes to use
			Both, // Use both
			OnlyHorizontal, // Only horizontal
			OnlyVertical // Only vertical
		}

		public int MovementRange = 100;
		public AxisOption axesToUse = AxisOption.Both; // The options for the axes that the still will use
		public string horizontalAxisName = "Horizontal"; // The name given to the horizontal axis for the cross platform input
		public string verticalAxisName = "Vertical"; // The name given to the vertical axis for the cross pl
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值