[Unity3D]手机3D游戏开发:关于自定义Joystick的相关设置和脚本源码

学习Unity脚本推荐:Unity3D官网索引


Joystick在手游开发中非常常见,也就是在手机屏幕上的虚拟操纵杆,但是Unity3D自带的Joystick贴图比较原始,所以经常有使用自定义贴图的需求。

下面就来演示一下如何实现自定义JoyStick贴图。

首先导入贴图,注意要把默认的Texture改为GUI要不然尺寸会发生改变:


在Inspector面板中点击Texture选项可以实现简单的贴图切换:


选中后便会发现场景中的Joystick已经发生了改变:

同理,可以对右边的Joystick做同样的修改:


当然很多时候这样简单的修改很难满足我们的需求。

下面来说说对Joystick的常见调整。

首先是坐标的调整,一般把Postition归零而在GUITexture中调整Pixel Inset:


但是这样依旧会出问题,全屏的时候因为采用了绝对坐标所以会出现这种情况:

所以我们还需要在脚本中稍作调整。

先来给Joystick加个背景图片。

创建一个JS脚本JoystickBackgroundGUI:

@script RequireComponent(Joystick)
@script ExecuteInEditMode ()


var background = new SwitchGUI();
var location = new Location();
private var GUIalpha:float = 1;


private var joystick : Joystick;
joystick = GetComponent (Joystick);

var noGuiStyle : GUIStyle;


function Update() {
	if (joystick.IsFingerDown()) {
		background.up();
	} else {
		background.down();
	}
	if (background.texture != null){
		location.updateLocation();
	}
}

function OnGUI () {
	GUI.color.a = GUIalpha;
	GUI.Box(Rect(location.offset.x + background.offset.x - background.texture.width/2,location.offset.y + background.offset.y - background.texture.height/2,background.texture.width,background.texture.height),background.texture,noGuiStyle);
}


joystick是Unity自己封装好的对象,其中有IsFingerDown等函数有需要的同学可以查阅一下Unity官网的说明文档。

脚本中用到了Locat

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值