public override void resetProperty() { base.resetProperty(); // 重置所有成员变量 mObjectID = -1; mPhysicsAcceleration = Vector3.zero; mLastPhysicsSpeed = Vector3.zero; mPhysicsSpeed = Vector3.zero; mLastPhysicsPosition = Vector3.zero; mCurFramePosition = Vector3.zero; mLastPosition = Vector3.zero; mMouseDownPosition = Vector3.zero; mLastSpeed = Vector3.zero; mMoveSpeed = Vector3.zero; mObject = null; mTransform = null; mAudioSource = null; mOnMouseEnter = null; mOnMouseLeave = null; mOnMouseDown = null; mOnMouseUp = null; mOnMouseMove = null; mClickCallback = null; mHoverCallback = null; mPressCallback = null; mMovedDuringFrame = false; mHasLastPosition = false; mDestroyObject = true; mDestroied = false; mMouseHovered = false; mHandleInput = true; mPassRay = false; }
public void registeBoxCollider(txUIObject obj, ObjectClickCallback clickCallback, ObjectHoverCallback hoverCallback, ObjectPressCallback pressCallback) { mGlobalTouchSystem.registeBoxCollider(obj, clickCallback, pressCallback, hoverCallback); obj.setPassRay(false); }
public void registeCollider(myUIObject obj, ObjectClickCallback clickCallback, ObjectHoverCallback hoverCallback, ObjectPressCallback pressCallback) { setObjectCallback(obj, clickCallback, hoverCallback, pressCallback); mGlobalTouchSystem.registeCollider(obj); obj.setPassRay(false); obj.setEnable(true); }
// 用于接收GlobalTouchSystem处理的输入事件 public void registeCollider(myUIObject obj, ObjectClickCallback clickCallback, ObjectHoverCallback hoverCallback, ObjectPressCallback pressCallback, bool passRay) { setObjectCallback(obj, clickCallback, hoverCallback, pressCallback); mGlobalTouchSystem.registeCollider(obj); obj.setPassRay(passRay); // 由碰撞体的窗口都需要启用更新,以便可以保证窗口大小与碰撞体大小一致 obj.setEnable(true); }
public void setObjectCallback(myUIObject obj, ObjectClickCallback clickCallback, ObjectHoverCallback hoverCallback, ObjectPressCallback pressCallback) { obj.setClickCallback(clickCallback); obj.setPressCallback(pressCallback); obj.setHoverCallback(hoverCallback); }
// 注册碰撞器,只有注册了的碰撞器才会进行检测 public void registeBoxCollider(IMouseEventCollect button, ObjectClickCallback clickCallback = null, ObjectPressCallback pressCallback = null, ObjectHoverCallback hoverCallback = null, GameCamera camera = null) { if (!mUseGlobalTouch) { logError("Not Active Global Touch!"); return; } if (button.getCollider() == null) { logError("window must has collider that can registeBoxCollider! " + button.getName()); return; } button.setClickCallback(clickCallback); button.setPressCallback(pressCallback); button.setHoverCallback(hoverCallback); if (!mAllButtonSet.Contains(button)) { if (button is txUIObject) { // 寻找窗口对应的摄像机 if (WidgetUtility.isNGUI((button as txUIObject).getObject())) { ++mNGUICount; if (camera == null) { camera = mCameraManager.getUICamera(true); } } else { ++mUGUICount; if (camera == null) { camera = mCameraManager.getUICamera(false); } } if (camera == null) { logError("can not find ui camera for raycast!"); } // 将窗口加入到鼠标射线检测列表中 UIDepth depth = button.getUIDepth(); MouseCastWindowSet mouseCastSet = null; foreach (var item in mMouseCastWindowList) { if (item.mCamera == camera) { mouseCastSet = item; break; } } if (mouseCastSet == null) { mouseCastSet = new MouseCastWindowSet(camera); mMouseCastWindowList.Add(mouseCastSet); } mouseCastSet.addWindow(depth, button); mButtonDepthList.Add(button, depth); } else if (button is MovableObject) { MouseCastObjectSet mouseCastSet = null; foreach (var item in mMouseCastObjectList) { if (item.mCamera == camera) { mouseCastSet = item; break; } } if (mouseCastSet == null) { mouseCastSet = new MouseCastObjectSet(camera); mMouseCastObjectList.Add(mouseCastSet); } mouseCastSet.addObject(button); mMovableObjectList.Add(button); } mAllButtonList.Add(button); mAllButtonSet.Add(button); } }
public override void setPressCallback(ObjectPressCallback callback) { base.setPressCallback(callback); }
public virtual void setPressCallback(ObjectPressCallback callback) { mPressCallback = callback; }