try to fix movement up
This commit is contained in:
@@ -73,15 +73,17 @@ public abstract class Character : MonoBehaviour
|
|||||||
|
|
||||||
if (_isOnLadder)
|
if (_isOnLadder)
|
||||||
{
|
{
|
||||||
float ladderCenterDistance = Mathf.Abs(transform.position.x - block.transform.position.x);
|
float ladderXCenterDistance = Mathf.Abs(transform.position.x - block.transform.position.x);
|
||||||
|
|
||||||
float v_movement = inputVertical;
|
float v_movement = inputVertical;
|
||||||
isAllowVertical = ladderCenterDistance < 0.3f;
|
|
||||||
|
|
||||||
|
|
||||||
SetClimbingAnimation(v_movement != 0);
|
|
||||||
_body.velocity = new Vector2(h_movement * _movementSpeed, v_movement * _movementSpeed);
|
|
||||||
|
|
||||||
|
isAllowVertical = (ladderXCenterDistance < 0.3f) || (CanClimbUp() && v_movement>0);
|
||||||
|
if (isAllowVertical)
|
||||||
|
{
|
||||||
|
SetClimbingAnimation(v_movement != 0);
|
||||||
|
_body.velocity = new Vector2(h_movement * _movementSpeed, v_movement * _movementSpeed);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -120,16 +122,24 @@ public abstract class Character : MonoBehaviour
|
|||||||
private void Death()
|
private void Death()
|
||||||
{
|
{
|
||||||
OnDeath();
|
OnDeath();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private bool CanClimbUp()
|
||||||
|
{
|
||||||
|
var rayCastHit = Physics2D.Raycast(_capsuleCollider.bounds.center, Vector2.down, _capsuleCollider.size.y / 2,_mapLayer);
|
||||||
|
if(rayCastHit)
|
||||||
|
if(rayCastHit.collider.transform.GetComponent<MapElement>().ElementSO.ElementType==MapElementType.Ladder)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
private MapElement GetMapElement()
|
private MapElement GetMapElement()
|
||||||
{
|
{
|
||||||
|
|
||||||
var playerBounds = _capsuleCollider.bounds.center;
|
|
||||||
|
|
||||||
var collider = BoxCast(playerBounds, _cellSize, 0f, Vector3.forward, .01f, _mapLayer);
|
var collider = BoxCast(_capsuleCollider.bounds.center, _cellSize, 0f, Vector3.forward, .01f, _mapLayer);
|
||||||
Color color = Color.red;
|
Color color = Color.red;
|
||||||
MapElement mapElement = null;
|
MapElement mapElement = null;
|
||||||
if (collider.Length > 0)
|
if (collider.Length > 0)
|
||||||
|
|||||||
Reference in New Issue
Block a user