//점프 코루틴 IEnumerator Jump() { bool goBreak = false; if (jumpCount > 2) { jumpCount = 0; goBreak = true; } SetIsClimbing(false); float jumpTimer = 0; float factor; float currentHeight = originObj.transform.position.y; effects[0].Play(); sm.playEffect(1); while (true) { if (goBreak || isClimbing) { break; } yield return(new WaitForFixedUpdate()); if (status.Equals(CHARACTERSTATUS.ATTACK)) { break; } status = CHARACTERSTATUS.JUMP; isGrounded = false; factor = Mathf.PI * (jumpTimer / jumpTime) * 0.5f; originObj.transform.position = new Vector3(originObj.transform.position.x, currentHeight + jumpHeight * Mathf.Sin(factor), originObj.transform.position.z); if (jumpTimer >= jumpTime) { changingGravity = defaultGravity; break; } if (isUpBlocked == true) { changingGravity = defaultGravity; break; } jumpTimer += Time.deltaTime; } status = CHARACTERSTATUS.NONE; }
// 대쉬 코루틴 IEnumerator Dash() { yield return(null); status = CHARACTERSTATUS.DASH; float DashTimer = 0; float factor = 0; //이펙트 //effects[6].transform.localPosition = new Vector3(-47, 46.2f, 0); effects[6].Play(); effects[7].Play(); while (true) { yield return(new WaitForFixedUpdate()); factor = Mathf.PI * (DashTimer / dashTime); if (charDir.Equals(CHARDIRECTION.RIGHT) || charDir.Equals(CHARDIRECTION.LEFT)) { curMoveSpeed = maxMoveSpeed + dashMoveSpeed * Mathf.Sin(factor); } else { curMoveSpeed = dashMoveSpeed * Mathf.Sin(factor); } if (curMoveSpeed > dashMoveSpeed) { curMoveSpeed = dashMoveSpeed; } DashTimer += Time.deltaTime; if (DashTimer > dashTime) { if (charDir.Equals(CHARDIRECTION.RIGHT) || charDir.Equals(CHARDIRECTION.LEFT)) { curMoveSpeed = maxMoveSpeed; } else { curMoveSpeed = 0; } break; } } status = CHARACTERSTATUS.NONE; }
public virtual void Init(string pNickName, cProperty pDamage, float pMaxMoveSpeed, cProperty pMaxHp, cProperty pCurHp) { nickName = pNickName; damage = new cProperty(pDamage); damage_crit = new cProperty(pDamage); damage_crit.value = (long)(damage.value * 1.5f); maxMoveSpeed = pMaxMoveSpeed; curMoveSpeed = 0; maxHp = new cProperty(pMaxHp); curHp = new cProperty(pCurHp); jumpHeight = 200.0f; SetHp(); dir = Vector3.right; attackBoxPos = new Vector3[4]; status = CHARACTERSTATUS.NONE; defaultGravity = 500; }
public void SetStatus(CHARACTERSTATUS pCs) { status = pCs; }