public ButtonEvent(uint status, byte trigger_value, byte[] stick, ThreeGlassesInterfaces.LeftOrRight LR) { KeyStatus = status; LeftOrRight = LR; MenuButton = (status & ButtonMask.MenuButton) == ButtonMask.MenuButton; BButton = (status & ButtonMask.BButton) == ButtonMask.BButton; LeftHandle = (status & ButtonMask.LeftHandle) == ButtonMask.LeftHandle; RightHandle = (status & ButtonMask.RightHandle) == ButtonMask.RightHandle; Trigger = (status & ButtonMask.Trigger) == ButtonMask.Trigger; TriggerPressEnd = (status & ButtonMask.TriggerPressEnd) == ButtonMask.TriggerPressEnd; StickXValue = 0.5f; StickYValue = 0.5f; if (LR == ThreeGlassesInterfaces.LeftOrRight.Left) { RefreshOnEvents(L_OLD_KEY_STATUS); L_OLD_KEY_STATUS = status; } else { RefreshOnEvents(R_OLD_KEY_STATUS); R_OLD_KEY_STATUS = status; } TriggerValue = trigger_value / (float)TriggerConst.MAX_VALUE; StickXValue = ThreeGlassesUtils.Lerp(0, 1.0f, stick[0] / (float)TriggerConst.MAX_VALUE); StickYValue = ThreeGlassesUtils.Lerp(0, 1.0f, stick[1] / (float)TriggerConst.MAX_VALUE); TriggerRawValue = trigger_value; StickXRawValue = stick[0]; StickYRawValue = stick[1]; }
void BindWand(GameObject obj, ThreeGlassesInterfaces.LeftOrRight LR) { if (obj != null) { var wand = obj.AddComponent <ThreeGlassesWand>(); wand.LeftOrRight = LR; } }
static void GetWandPosAndRotd(ref ThreeGlassesInterfaces.LeftOrRight lr, ref System.Action <Quaternion, Vector3> callback) { ThreeGlassesInterfaces.GetWandPosAndRot(lr, ref _wand_position, ref _wand_quaternion, out _wand_button_event); if (callback != null) { callback(_wand_quaternion, _wand_position); } if (WandButtonEvent != null) { WandButtonEvent(_wand_button_event); } }
void Awake() { _leftOrRight = LeftOrRight; }