void LateUpdate() { // face camera transform.rotation = Quaternion.LookRotation(transform.position - Camera.main.transform.position); if (!(controllerHand == OVRInput.Controller.LTouch || controllerHand == OVRInput.Controller.RTouch)) { return; } Vector3 tipPosition = transform.position; switch (brushStatus) { case BrushState.Idle: if (OVRInput.GetUp(OVRInput.Button.One, controllerHand)) { UndoInkLine(); } if (OVRInput.GetDown(OVRInput.Button.PrimaryIndexTrigger, controllerHand)) { StartLine(tipPosition); brushStatus = BrushState.Inking; } break; case BrushState.Inking: // every frame, draw line UpdateLine(tipPosition); if (OVRInput.GetUp(OVRInput.Button.PrimaryIndexTrigger, controllerHand)) { brushStatus = BrushState.Idle; } break; } }
void GetNearestFlagCorner() { Vector2 cursor2Dpos = GetCursor2D(); float dist = 5; float lastDistance = 100; int cornerIndex = 0; foreach (EventFlag flag in parentGame.myLevel.FlagsList) { cornerIndex = 0; foreach (Vector2 corner in flag.Corners) { float thisDistance = Vector2.Distance(cursor2Dpos, corner); if (thisDistance <= dist && thisDistance < lastDistance) { lastDistance = thisDistance; activeFlag = flag; activeCornerIndex = cornerIndex; activeCorner = corner; brush = BrushState.FlagSelected; } cornerIndex += 1; } } }
public void SetBrushState(int index) { state = (BrushState)index; }
private void OnDisable() { brushStatus = BrushState.Idle; }