Here’s my code, and things work just like in Rick but I want my player to fly a bit away from the enemy too, but all I can manage is making him jump off a bit… How do I make my player have some X velocity?
void Update()
{
Die();
}
void Die()
{
if (myCapsuleCollider2D.IsTouchingLayers(LayerMask.GetMask("Enemy")) && isAlive)
{
myPlayerInput.enabled = false;
myAnimator.SetBool("isJumping", false);
myAnimator.SetBool("isRunning", false);
// Chạy animation và deadKick tuỳ vào hướng va chạm
// Nếu nhân vật đang quay phải
if (myTransform.localScale.x >= 0)
{
myRigidbody2D.velocity = deadKickFromLeft;
Debug.Log("X velocity is: " + myRigidbody2D.velocity.x);
// trigger animation
myAnimator.SetTrigger("isDeadLeft");
// chết r thì vô chạm và rơi khỏi trò chơi luôn - nếu thích giữ lại ng lại khi chết thì cmt 2 dòng này lại
myCapsuleCollider2D.isTrigger = true;
myCircleCollider2D.isTrigger = true;
myRigidbody2D.gravityScale = baseGravity;
isAlive = false;
Invoke("reloadScene", waitTillReload);
}
// Nếu nhân vật đang quay trái
else if (myTransform.localScale.x < 0)
{
Debug.Log("X velocity is: " + myRigidbody2D.velocity.x);
myRigidbody2D.velocity = deadKickFromRight;
myAnimator.SetTrigger("isDeadRight");
// chết r thì vô chạm và rơi khỏi trò chơi luôn - nếu thích giữ lại ng lại khi chết thì cmt 2 dòng này lại
myCapsuleCollider2D.isTrigger = true;
myCircleCollider2D.isTrigger = true;
myRigidbody2D.gravityScale = baseGravity;
isAlive = false;
Invoke("reloadScene", waitTillReload);
}
else
{
return;
}
}
}