开发使要用到摇杆,选择了使用EasyTouch插件(在此具体创建等基本操作就不多说,网上很多),由于创建Joysick时自带一个EasyTouchControlsCanvas为父节点,里面挂了一个Canvas用以渲染。但一般项目用,已有渲染UI的Canvas并且这个摇杆属于UI,是放在UI里 节点下的,所以要去掉EasyTouchControlsCanvas。
直接去掉,把Joysick放在UI下面,如果UI的渲染模式不是 Screen Space - Overlay,会发现里面摇杆失灵了,这里最快的方法是直接改成该模式。如是不改,则按以下操作
这里找到找到EasyTouch中使用到Canvas的代码:
一、先在项目中把其获取的Canvas改为当前项目中UI的Canvas(找对应该的调用地方)
二、在ETCJoystick.cs角本里面,修改以下代码。
public void OnDrag(PointerEventData eventData){
...
/* by game winner LUO
* 删除原EasyTouchControlsCanvas,用项目UICanvas替代
*
if (!isNoReturnThumb){
thumbPosition = (eventData.position - eventData.pressPosition) / cachedRootCanvas.rectTransform().localScale.x;
}
else{
thumbPosition =((eventData.position - noReturnPosition) /cachedRootCanvas.rectT