void Update() { bulletRotateTime += Time.deltaTime; // 탄속 변경 if (bulletSpeedState.Equals(BulletSpeedState.BULLETSPEEDSTATE_ACCELERATING)) { bulletMoveSpeed += bulletAccelerationMoveSpeed; if (!bulletAccelerationMoveSpeedMax.Equals(0.0f)) { if (bulletMoveSpeed >= bulletAccelerationMoveSpeedMax) { bulletMoveSpeed = bulletAccelerationMoveSpeedMax; } } } else if (bulletSpeedState.Equals(BulletSpeedState.BULLETSPEEDSTATE_DECELERATING)) { bulletMoveSpeed -= bulletDecelerationMoveSpeed; if (!bulletDecelerationMoveSpeedMin.Equals(0.0f)) { if (bulletMoveSpeed <= bulletDecelerationMoveSpeedMin) { bulletMoveSpeed = bulletDecelerationMoveSpeedMin; } } else { if (bulletMoveSpeed <= 0.0f) { bulletMoveSpeed = 0.0f; } } } else if (bulletSpeedState.Equals(BulletSpeedState.BULLETSPEEDSTATE_LOOP)) { if (bulletMoveSpeedLoopBool.Equals(true)) { bulletMoveSpeed += bulletAccelerationMoveSpeed; if (bulletMoveSpeed >= bulletAccelerationMoveSpeedMax) { bulletMoveSpeedLoopBool = false; } } else { bulletMoveSpeed -= bulletDecelerationMoveSpeed; if (bulletMoveSpeed <= bulletDecelerationMoveSpeedMin) { bulletMoveSpeedLoopBool = true; } } } else if (bulletSpeedState.Equals(BulletSpeedState.BULLETSPEEDSTATE_LOOPONCE)) { if (bulletMoveSpeedLoopBool.Equals(true)) { bulletMoveSpeed += bulletAccelerationMoveSpeed; if (bulletMoveSpeed >= bulletAccelerationMoveSpeedMax) { bulletMoveSpeedLoopBool = false; bulletSpeedState = BulletSpeedState.BULLETSPEEDSTATE_DECELERATING; } } else { bulletMoveSpeed -= bulletDecelerationMoveSpeed; if (bulletMoveSpeed <= bulletDecelerationMoveSpeedMin) { bulletMoveSpeedLoopBool = true; bulletSpeedState = BulletSpeedState.BULLETSPEEDSTATE_ACCELERATING; } } } // 탄도 변경 (지속 증감) if (!bulletRotateSpeed.Equals(0.0f)) { if (bulletRotateState.Equals(BulletRotateState.BULLETROTATESTATE_NORMAL)) { transform.Rotate(Vector3.forward * bulletRotateSpeed * Time.deltaTime); } else if (bulletRotateState.Equals(BulletRotateState.BULLETROTATESTATE_LIMIT)) { transform.Rotate(Vector3.forward * bulletRotateSpeed * Time.deltaTime); if (bulletRotateTime >= bulletRotateLimit) { bulletRotateSpeed = 0.0f; } } else if (bulletRotateState.Equals(BulletRotateState.BULLETROTATESTATE_ROTATEAROUND)) { RotateAround(bulletDestination); } } // 탄도 변경 (지속적으로 대상을 향해 바라보기) else if (bulletRotateState.Equals(BulletRotateState.BULLETROTATESTATE_LOOKAT)) { bulletDestination = initializeBullet.GetAimedBulletDestination(initializeBullet.targetObject.transform.position); float angle = Mathf.Atan2(movingBullet.bulletDestination.y, movingBullet.bulletDestination.x) * Mathf.Rad2Deg; if (initializeBullet.bulletType.Equals(BulletType.BULLETTYPE_LASER_MOVE)) { ChangeRotateAngle(angle - 180.0f); } else { ChangeRotateAngle(angle - 90.0f); } } // 탄막 이동 if (initializeBullet.bulletType.Equals(BulletType.BULLETTYPE_NORMAL)) { transform.Translate(Vector2.up * bulletMoveSpeed * Time.deltaTime); } else { transform.Translate(Vector2.right * bulletMoveSpeed * Time.deltaTime); } // 탄막 그레이즈 if (isGrazing.Equals(true)) { grazeDelay += Time.deltaTime; if (grazeDelay >= 0.1f) { playerDatabase.grazeCount++; grazeDelay = 0.0f; } } else { grazeDelay = 0.0f; } // 콜라이더 활성화 if (!initializeBullet.bulletType.Equals(BulletType.BULLETTYPE_LASER_HOLD) && Vector2.Distance(transform.position, playerObject.transform.position) <= 0.5f) { if (!circleCollider2D.Equals(null)) { circleCollider2D.enabled = true; } else if (!capsuleCollider2D.Equals(null)) { capsuleCollider2D.enabled = true; } else if (!boxCollider2D.Equals(null)) { boxCollider2D.enabled = true; } } else { Vector3 targetScreenPos = Camera.main.WorldToScreenPoint(gameObject.transform.position); if (((targetScreenPos.x > Screen.width || targetScreenPos.x < 0.0f) || (targetScreenPos.y > Screen.height || targetScreenPos.y < 0.0f)) || (gameManager.isCleared.Equals(true))) { if (!circleCollider2D.Equals(null)) { circleCollider2D.enabled = true; } else if (!capsuleCollider2D.Equals(null)) { capsuleCollider2D.enabled = true; } else if (!boxCollider2D.Equals(null)) { boxCollider2D.enabled = true; } } } }