public override void OnCursorExit() { GameSystem.ChangeCursorSprite(GameSystem.setting.the光标图标设置.默认); if (onCursorExit != null) { onCursorExit(); } }
private IEnumerator UpMenu() { //获取输入量 float xDelta = Input.GetAxis("Mouse X") * xSensitivity; float yDelta = Input.GetAxis("Mouse Y") * ySensitivity; //记录偏移量 xOffset += xDelta; if (xOffset < -xMenuRange) { xOffset = -xMenuRange; } if (xOffset > xMenuRange) { xOffset = xMenuRange; } yOffset += yDelta; float yMaxRange = yRange + yMenuRange; if (yOffset > yMaxRange) { yOffset = yMaxRange; } //光标父物体平移计算 float xxTrans; float yyTrans; xxTrans = cursorXMenuRange * xOffset / xMenuRange; yyTrans = cursorYRange * ((yOffset - yRange) / yMenuRange * 2 - 1); cursorParent.localPosition = new Vector3(xxTrans, yyTrans, 0); //主体旋转计算 float yRot = yOffset; eye.localRotation = Quaternion.Euler(Vector3.left * yRot); yield return(0); //状态转换 if (yOffset < yRange) { GameSystem.ChangeCursorSprite(GameSystem.setting.the光标图标设置.默认); GameSystem.gameStatus = GameSystem.GameStatus.Playing; yield return(Playing()); } else { yield return(UpMenu()); } }
private IEnumerator StartMenu() { //获取输入量 float xDelta = Input.GetAxis("Mouse X") * xSensitivity; float yDelta = Input.GetAxis("Mouse Y") * ySensitivity; //记录偏移量 xOffset += xDelta; if (xOffset < -xMenuRange) { xOffset = -xMenuRange; } if (xOffset > xMenuRange) { xOffset = xMenuRange; } yOffset += yDelta; float yMaxRange = yMenuRange / 2; if (yOffset < -yMaxRange) { yOffset = -yMaxRange; } if (yOffset > yMaxRange) { yOffset = yMaxRange; } //光标父物体平移计算 float xxTrans; float yyTrans; xxTrans = cursorXMenuRange * xOffset / xMenuRange; yyTrans = cursorYRange * yOffset / yMaxRange; cursorParent.localPosition = new Vector3(xxTrans, yyTrans, 0); yield return(0); //状态转换 if (GameSystem.gameStatus == GameSystem.GameStatus.Playing) { xOffset = 0; yOffset = 0; GameSystem.ChangeCursorSprite(GameSystem.setting.the光标图标设置.默认); yield return(Playing()); } else { yield return(StartMenu()); } }
public override void OnCursorExit() { GameSystem.ChangeCursorSprite(GameSystem.setting.the光标图标设置.菜单); isActive = false; GetComponent <SpriteRenderer>().sprite = normal; }
public override void OnCursorEnter() { GameSystem.ChangeCursorSprite(GameSystem.setting.the光标图标设置.菜单2); GetComponent <SpriteRenderer>().sprite = over; }
public override void OnCursorEnter() { GameSystem.ChangeCursorSprite(GameSystem.setting.the光标图标设置.远处调查); }
private IEnumerator Playing() { //获取输入量 float xDelta = Input.GetAxis("Mouse X") * xSensitivity; float yDelta = Input.GetAxis("Mouse Y") * ySensitivity; float h = Input.GetAxis("Horizontal"); float v = Input.GetAxis("Vertical"); //记录偏移量 xOffset += xDelta; if (xOffset < -xRange) { xOffset = -xRange; } if (xOffset > xRange) { xOffset = xRange; } yOffset += yDelta; float yMaxRange = yRange + yMenuRange; if (yOffset < -yMaxRange) { yOffset = -yMaxRange; } if (yOffset > yMaxRange) { yOffset = yMaxRange; } //光标父物体平移计算 float xxTrans; float yyTrans; xxTrans = cursorXRange * Mathf.Sin(xOffset * Mathf.PI / xRange / 2); yyTrans = cursorYRange * Mathf.Sin(yOffset * Mathf.PI / yRange / 2); cursorParent.localPosition = new Vector3(xxTrans, yyTrans, 0); //主体旋转计算 float yRot = yOffset; transform.Rotate(Vector3.up * xDelta); eye.localRotation = Quaternion.Euler(Vector3.left * yRot); //移动计算 rid.velocity = transform.forward * v * (v > 0 ? speedForward : speedBackward) + transform.right * h * speedHorizontal; yield return(0); //状态转换 if (yOffset > yRange) { xOffset = 0; rid.velocity = Vector3.zero; GameSystem.gameStatus = GameSystem.GameStatus.UpMenu; GameSystem.ChangeCursorSprite(GameSystem.setting.the光标图标设置.菜单); yield return(UpMenu()); } else if (yOffset < -yRange) { xOffset = 0; rid.velocity = Vector3.zero; GameSystem.gameStatus = GameSystem.GameStatus.DownMenu; GameSystem.ChangeCursorSprite(GameSystem.setting.the光标图标设置.菜单); yield return(DownMenu()); } else { yield return(Playing()); } }