void OnRelayCorrectly() { //old player PlayerViewObjectTransform.parent = manager.instance.allBeadArray[2].transform; manager.instance.hitRightBead(); PlayerViewObjectTransform = manager.instance.NextCharTrans; manager.instance.NextCharTrans = null; PlayerViewObjectTransform.parent = null; CharStatus = CharStatusEnum.Normal; }
void SPCounting() { float CurvedVal = Curve.Evaluate(FPSS.instance.FinshPerSpecifySec); float val = CurvedVal <= 0 ? -5 : CurvedVal; val *= multiple; SP += (SPRecoverPerSec - val) * Time.deltaTime; SP = MyClamp(SP, 0, MaxSP); if (SP <= 0) { CharStatus = CharStatusEnum.FallenDown; //SP = 50; } }
void StatusAdmin() { FirstTimeEntry = CharStatusCopy != CharStatus; CharStatusCopy = CharStatus; switch (CharStatus) { case CharStatusEnum.Normal: if (FirstTimeEntry) { } SPCounting(); break; case CharStatusEnum.FallenDown: if (FirstTimeEntry) { PlayerViewObjectTransform.eulerAngles = new Vector3(0, 0, -35); FallenDownTimer = 0; } FallenDownTimer += Time.deltaTime; if (FallenDownTimer >= 1) { PlayerViewObjectTransform.eulerAngles = new Vector3(0, 0, 0); CharStatus = CharStatusEnum.Normal; } break; case CharStatusEnum.Embrace: if (FirstTimeEntry) { EmbraceDecideUIView.instance.SetOpen(); } if (Input.GetKeyDown(KeyCode.Space)) { switch (EmbraceDecide.instance.GetIsHitDecideArea()) //懶 { case "PREFECT": SP = MaxSP; OnRelayCorrectly(); break; case "Good": SP += MaxSP * 0.35f; OnRelayCorrectly(); break; case "MISS": OnRelayCorrectly(); manager.instance.failhit(); break; default: break; } EmbraceDecideUIView.instance.SetClose(); } break; default: break; } }
// Start is called before the first frame update void Start() { SP = MaxSP; CharStatusCopy = CharStatus; globalUpdateManager.instance.registerUpdateDg(ToUpdate); }