コード例 #1
0
    public IEnumerator KnockBack(float delay, float force, Vector2 dir)
    {
        KnockingBack = true;
        Rb2D.AddForce(dir * force, ForceMode2D.Impulse);
        yield return(new WaitForSeconds(delay));

        KnockingBack = false;
    }
コード例 #2
0
 public override void FixedUpdateThis()
 {
     base.FixedUpdateThis();
     if (jump)
     {
         Rb2D.AddForce(Vector2.up * JumpPower, ForceMode2D.Impulse);
         jump = false;
     }
 }
コード例 #3
0
ファイル: Player.cs プロジェクト: lenok97/breakRules
 public override void ReceiveDamage()
 {
     Lives--;
     Rb2D.velocity = Vector3.zero;
     Rb2D.AddForce(transform.up * 3.0F, ForceMode2D.Impulse);
     if (Lives <= 0)
     {
         EventManager.Instance.PostNotification(EVENT_TYPE.UNIT_DIE);
     }
 }
コード例 #4
0
ファイル: Movement.cs プロジェクト: marcuskaraker/FireSphere
    private void PhysicsMovement()
    {
        Rb2D.AddForce(transform.right * speed * appliedSprintMultiplier);

        Vector2 targetDir = (rotationTarget - Rb2D.position).normalized;

        if (rotationType == RotationType.RotateTowardsTarget)
        {
            float normalizedDir = Mathf.Sign(Vector2.SignedAngle(transform.right, targetDir));
            Rb2D.AddTorque(normalizedDir * rotationSpeed * appliedSprintMultiplier);
        }
        else if (rotationType == RotationType.RotateTowardsMovement)
        {
            float normalizedDir = Mathf.Sign(Vector2.SignedAngle(transform.right, direction));
            Rb2D.AddTorque(normalizedDir * rotationSpeed * appliedSprintMultiplier);
        }
    }
コード例 #5
0
    private IEnumerator SmoothMovement(Vector3 end)
    {
        float sqrRemainingDistance = (transform.position - end).sqrMagnitude;

        while (sqrRemainingDistance > float.Epsilon)
        {
            Vector3 newPostion = Vector3.MoveTowards(Rb2D.position, end, _inverseMoveTime * Time.deltaTime);

            Rb2D.MovePosition(newPostion);

            sqrRemainingDistance = (transform.position - end).sqrMagnitude;

            yield return(null);
        }

        if (this is Player)
        {
            yield return(new WaitForSeconds(0.2f));

            GameManager.Instance.playerCanMove = true;
        }
    }