protected void SetupPointers() { pointers = new POINTER_INFO[uiCameras.Length, numTouches]; // Get our raycasting object: /* if (raycastingObject != null) raycastingTransform = raycastingObject.transform; else */ raycastingTransform = rayCamera.gameObject.transform; switch (pointerType) { case POINTER_TYPE.MOUSE: pointerPoller = PollMouse; activePointers[0] = 0; numActivePointers = 1; for (int i = 0; i < uiCameras.Length; ++i) { pointers[i, 0].id = 0; pointers[i, 0].rayDepth = uiCameras[i].rayDepth; pointers[i, 0].layerMask = uiCameras[i].mask; pointers[i, 0].camera = uiCameras[i].camera; pointers[i, 0].type = POINTER_INFO.POINTER_TYPE.MOUSE; } break; case POINTER_TYPE.TOUCHPAD: pointerPoller = PollTouchpad; for (int i = 0; i < uiCameras.Length; ++i) for (int j = 0; j < numPointers; ++j) { pointers[i, j].id = j; pointers[i, j].rayDepth = uiCameras[i].rayDepth; pointers[i, j].layerMask = uiCameras[i].mask; pointers[i, j].camera = uiCameras[i].camera; pointers[i, j].type = POINTER_INFO.POINTER_TYPE.TOUCHPAD; } break; case POINTER_TYPE.AUTO_TOUCHPAD: pointerPoller = PollMouseAndTouchpad; for (int i = 0; i < uiCameras.Length; ++i) { for (int j = 0; j < numPointers; ++j) { pointers[i, j].id = j; pointers[i, j].rayDepth = uiCameras[i].rayDepth; pointers[i, j].layerMask = uiCameras[i].mask; pointers[i, j].camera = uiCameras[i].camera; pointers[i, j].type = POINTER_INFO.POINTER_TYPE.TOUCHPAD; } pointers[i, numPointers - 1].type = POINTER_INFO.POINTER_TYPE.MOUSE; } break; case POINTER_TYPE.RAY: pointerPoller = PollRay; numActivePointers = 0; rayPtr.type = POINTER_INFO.POINTER_TYPE.RAY; rayPtr.id = 0; rayPtr.rayDepth = rayDepth; rayPtr.layerMask = rayMask; rayPtr.camera = rayCamera; break; case POINTER_TYPE.MOUSE_AND_RAY: pointerPoller = PollMouseRay; activePointers[0] = 0; numActivePointers = 1; // 0 is the mouse: for (int i = 0; i < uiCameras.Length; ++i) { pointers[i, 0].id = 0; pointers[i, 0].rayDepth = uiCameras[i].rayDepth; pointers[i, 0].layerMask = uiCameras[i].mask; pointers[i, 0].camera = uiCameras[i].camera; pointers[i, 0].type = POINTER_INFO.POINTER_TYPE.MOUSE; } rayPtr.type = POINTER_INFO.POINTER_TYPE.RAY; rayPtr.rayDepth = rayDepth; rayPtr.layerMask = rayMask; rayPtr.camera = rayCamera; break; case POINTER_TYPE.TOUCHPAD_AND_RAY: pointerPoller = PollTouchpadRay; for (int i = 0; i < uiCameras.Length; ++i) for (int j = 0; j < numPointers; ++j) { pointers[i, j].id = j; pointers[i, j].rayDepth = uiCameras[i].rayDepth; pointers[i, j].layerMask = uiCameras[i].mask; pointers[i, j].camera = uiCameras[i].camera; pointers[i, j].type = POINTER_INFO.POINTER_TYPE.TOUCHPAD; } rayPtr.type = POINTER_INFO.POINTER_TYPE.RAY; rayPtr.rayDepth = rayDepth; rayPtr.layerMask = rayMask; rayPtr.camera = rayCamera; break; default: Debug.LogError("ERROR: Invalid pointer type selected!"); break; } }
protected void SetupPointers() { Start(); // Incase we've just been instantiated pointers = new POINTER_INFO[uiCameras.Length, numTouches]; try { // Get our raycasting object: if (raycastingTransform == null) raycastingTransform = Camera.main.transform; raycastingTransform = rayCamera.gameObject.transform; } catch { ScreenLog.AddMessage("There appears to be no \"Main\" camera. Please tag one of your cameras with the \"MainCamera\" tag.", ScreenLogType.Error); } switch (pointerType) { case POINTER_TYPE.MOUSE: pointerPoller = PollMouse; activePointers[0] = 0; numActivePointers = 1; for (int i = 0; i < uiCameras.Length; ++i) { pointers[i, 0].id = 0; pointers[i, 0].rayDepth = uiCameras[i].rayDepth; pointers[i, 0].layerMask = uiCameras[i].mask; pointers[i, 0].camera = uiCameras[i].camera; pointers[i, 0].type = POINTER_INFO.POINTER_TYPE.MOUSE; } break; case POINTER_TYPE.TOUCHPAD: pointerPoller = PollTouchpad; for (int i = 0; i < uiCameras.Length; ++i) for (int j = 0; j < numPointers; ++j) { pointers[i, j].id = j; pointers[i, j].rayDepth = uiCameras[i].rayDepth; pointers[i, j].layerMask = uiCameras[i].mask; pointers[i, j].camera = uiCameras[i].camera; pointers[i, j].type = POINTER_INFO.POINTER_TYPE.TOUCHPAD; } break; case POINTER_TYPE.AUTO_TOUCHPAD: pointerPoller = PollMouseAndTouchpad; for (int i = 0; i < uiCameras.Length; ++i) { for (int j = 0; j < numPointers; ++j) { pointers[i, j].id = j; pointers[i, j].rayDepth = uiCameras[i].rayDepth; pointers[i, j].layerMask = uiCameras[i].mask; pointers[i, j].camera = uiCameras[i].camera; pointers[i, j].type = POINTER_INFO.POINTER_TYPE.TOUCHPAD; } pointers[i, numPointers - 1].type = POINTER_INFO.POINTER_TYPE.MOUSE; } break; case POINTER_TYPE.RAY: pointerPoller = PollRay; numActivePointers = 0; rayPtr.type = POINTER_INFO.POINTER_TYPE.RAY; rayPtr.id = -1; rayPtr.rayDepth = rayDepth; rayPtr.layerMask = rayMask; rayPtr.camera = rayCamera; break; case POINTER_TYPE.MOUSE_AND_RAY: pointerPoller = PollMouseRay; activePointers[0] = 0; numActivePointers = 1; // 0 is the mouse: for (int i = 0; i < uiCameras.Length; ++i) { pointers[i, 0].id = 0; pointers[i, 0].rayDepth = uiCameras[i].rayDepth; pointers[i, 0].layerMask = uiCameras[i].mask; pointers[i, 0].camera = uiCameras[i].camera; pointers[i, 0].type = POINTER_INFO.POINTER_TYPE.MOUSE; } rayPtr.id = -1; rayPtr.type = POINTER_INFO.POINTER_TYPE.RAY; rayPtr.rayDepth = rayDepth; rayPtr.layerMask = rayMask; rayPtr.camera = rayCamera; break; case POINTER_TYPE.TOUCHPAD_AND_RAY: pointerPoller = PollTouchpadRay; for (int i = 0; i < uiCameras.Length; ++i) for (int j = 0; j < numPointers; ++j) { pointers[i, j].id = j; pointers[i, j].rayDepth = uiCameras[i].rayDepth; pointers[i, j].layerMask = uiCameras[i].mask; pointers[i, j].camera = uiCameras[i].camera; pointers[i, j].type = POINTER_INFO.POINTER_TYPE.TOUCHPAD; } rayPtr.id = -1; rayPtr.type = POINTER_INFO.POINTER_TYPE.RAY; rayPtr.rayDepth = rayDepth; rayPtr.layerMask = rayMask; rayPtr.camera = rayCamera; break; default: ScreenLog.AddMessage("ERROR: Invalid pointer type selected!", ScreenLogType.Error); break; } }