public virtual void OnCollisionEnter(Collision collision) { if (collision.gameObject.tag == Tags.wall) { if (action == CharacterActionsEnum.digWall) { if (wallCheckTop.getCubeColliding() != null) { digWallCubeTop = wallCheckTop.getCubeColliding(); } if (wallCheckDown.getCubeColliding() != null) { digWallCubeDown = wallCheckDown.getCubeColliding(); } DigWallStart(); } if (action == CharacterActionsEnum.climb) { ClimbStart(); } if (action == CharacterActionsEnum.push) { if (wallCheckDown.getCubeColliding() != null) { int height = wallCheckDown.getCubeColliding().GetHeight(); if (height == 1 && pushCube == null && wallCheckDown.getCubeColliding().pushable) { pushCube = wallCheckDown.getCubeColliding().gameObject.GetComponent <PushableCube> (); pushCubeMovement = pushCube.moveToDirection; if (pushCube != null && pushCubeMovement != null) { PushStart(); } else { ChangeDirection(); } } else { ChangeDirection(); } } } if (action != CharacterActionsEnum.digWall && action != CharacterActionsEnum.climb && action != CharacterActionsEnum.push) { if (wallCheckTop.getCubeColliding() != null || wallCheckDown.getCubeColliding() != null) { ChangeDirection(); } } } }
public virtual void PushEnd() { pushCubeMovement.StopMoving(); ChangeDirection(); pushCube = null; pushCubeMovement = null; animator.SetBool(hashAnimator.push, false); NoAction(); }