学习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