private void SetJoyStickAxis(Vector3 worldPos) { this.mControlTransform.position = worldPos; this.mTouchedAxis = mControlTransform.anchoredPosition; if (this.mTouchedAxis.magnitude > mButtonRadius) { this.mTouchedAxis = this.mTouchedAxis.normalized * mButtonRadius; } mControlTransform.anchoredPosition = this.mTouchedAxis; float XOffset = Mathf.Abs(this.mTouchedAxis.x); float YOffset = Mathf.Abs(this.mTouchedAxis.y); float maxOffset = XOffset >= YOffset ? XOffset : YOffset; //float halfHalfRadius = this.mButtonRadius / 2; this.mArrowDir = JoyButtonDir.Center; if (maxOffset >= this.mOffset && this.mNeedDir) { if (XOffset >= YOffset) { this.mArrowDir = this.mTouchedAxis.x > 0 ? JoyButtonDir.Right : JoyButtonDir.Left; } else { this.mArrowDir = this.mTouchedAxis.y > 0 ? JoyButtonDir.Up : JoyButtonDir.Down; } } this.UpdateArrowDir(); }
private void ResetToInit() { this.mArrowDir = JoyButtonDir.Center; this.mHasNotifyedEvent = JoyButtonEvent.None; this.mTouchStartTime = 0; this.UpdateArrowDir(); this.mControlTransform.anchoredPosition = Vector2.zero; this.mPress.SetActive(false); }
public void OnUiJoyButtonEvent(JoyButtonCode buttonCode, JoyButtonEvent evt, JoyButtonDir dir) { JoyButtonResponseData data = new JoyButtonResponseData(); data.mCode = buttonCode; data.mEvent = evt; data.mDir = dir; data.mIsGrounded = this.mIsGrounded; if (data.mCode == JoyButtonCode.Jump && data.mEvent == JoyButtonEvent.Touched) { this.CallJump(); } else { this.CallAttack(data); } }