// Detections private void FacingDetect() { if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow)) { facing = FacingState.up; } else if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow)) { facing = FacingState.right; Flip(true); } else if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow)) { facing = FacingState.left; Flip(false); } if (Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow)) { crouching = true; } else { crouching = false; } }
public void faceObject(GameObject a_gameObject) { double l_angle = MathManager.angle( m_position + m_hitbox.p_dimensions / 2, a_gameObject.p_position + new Vector2(a_gameObject.getHitBox().X, a_gameObject.getHitBox().Y) / 2 ); if (l_angle > 0) { if (l_angle <= 70) { m_facingState = FacingState.TopRight; } else if (l_angle <= 130 && l_angle > 70) { m_facingState = FacingState.Up; } else if (l_angle <= 180 && l_angle > 130) { m_facingState = FacingState.TopLeft; } } else { if (l_angle >= -70) { m_facingState = FacingState.BottomRight; } else if (l_angle >= -130 && l_angle < -70) { m_facingState = FacingState.Down; } else if (l_angle >= -180 && l_angle < -130) { m_facingState = FacingState.BottomLeft; } } }
// Use this for initialization void Start() { movementState = MovementState.Standing; facingState = FacingState.Direct; inputReceiver.MoveInputReceived += InputReceiver_MoveInputReceived; }
// Update is called once per frame void Update () { Ray ray = new Ray(head.position,Vector3.right); Physics.Raycast(ray,out rayHit,1000,hitLayer); if(rayHit.collider == right) { facing = FacingState.RIGHT; } else if(rayHit.collider == left) { facing = FacingState.LEFT; } else if(rayHit.collider == top) { facing = FacingState.TOP; } else { facing = FacingState.BOT; } if(move) { moveObject.transform.position = Vector3.MoveTowards(moveObject.transform.position,targetPosition,.1f); }else{ StartCoroutine(Wait()); } }
public void faceTile(Tile a_tile) { if (a_tile.getMapPosition().X < m_currentPosition.getMapPosition().X) { if (MathManager.isEven((int)m_currentPosition.getMapPosition().X)) { m_facingState = a_tile.getMapPosition().Y == m_currentPosition.getMapPosition().Y ? m_facingState = FacingState.TopLeft : m_facingState = FacingState.BottomLeft; } else { m_facingState = a_tile.getMapPosition().Y == m_currentPosition.getMapPosition().Y ? m_facingState = FacingState.BottomLeft : m_facingState = FacingState.TopLeft; } } else if (a_tile.getMapPosition().X > m_currentPosition.getMapPosition().X) { if (MathManager.isEven((int)m_currentPosition.getMapPosition().X)) { m_facingState = a_tile.getMapPosition().Y == m_currentPosition.getMapPosition().Y ? m_facingState = FacingState.TopRight : m_facingState = FacingState.BottomRight; } else { m_facingState = a_tile.getMapPosition().Y == m_currentPosition.getMapPosition().Y ? m_facingState = FacingState.BottomRight : m_facingState = FacingState.TopRight; } } else { m_facingState = a_tile.getMapPosition().Y < m_currentPosition.getMapPosition().Y ? m_facingState = FacingState.Up : m_facingState = FacingState.Down; } }
public void faceObject(GameObject a_gameObject) { double l_angle = MathManager.angle( m_position + m_hitbox.p_dimensions / 2, a_gameObject.p_position + new Vector2(a_gameObject.getHitBox().X, a_gameObject.getHitBox().Y) / 2 ); if (l_angle > 0) { if (l_angle <= 70) { m_facingState = FacingState.TopRight; } else if (l_angle <= 130 && l_angle > 70) { m_facingState = FacingState.Up; } else if (l_angle <= 180 && l_angle > 130) { m_facingState = FacingState.TopLeft; } } else { if (l_angle >= -70) { m_facingState = FacingState.BottomRight; } else if (l_angle >= -130 && l_angle < -70) { m_facingState = FacingState.Down; } else if (l_angle >= -180 && l_angle < -130) { m_facingState = FacingState.BottomLeft; } } }
private void InternalMove(Vector2 dV) { dV = dV * speed; dV = dV.ApplyFixedDeltaTime(); lastStep = dV; //var newPosition = (Vector2)boxCollider.transform.position + dV; var newPosition = (Vector2)transform.TransformPoint(boxCollider.offset) + dV; var newFacingState = dV.ToFacingState(); var wallHit = Physics2D.BoxCast(newPosition, boxCollider.size, boxCastingAngle, newFacingState.ToVector2(), raycastDistance, wallsMask); //var hit = Physics2D.CircleCast(newPosition, circleRadius, newFacingState.ToVector2(), raycastDistance, wallsMask); //var hit = Physics2D.Raycast(newPosition, newFacingState.ToVector2(), raycastDistance, wallsMask); var hitCaster = GetComponent <HitCaster>(); if (hitCaster != null) { hitCaster.CastHitIfNeeded(newFacingState.ToVector2()); } // no wall ahead if (wallHit.collider == null) { transform.Translate(dV); facingState = newFacingState; //Debug.Log("facingState"); if (animator.runtimeAnimatorController != null) { animator.SetInteger("facingState", (int)facingState); } // why this event is triggering here? OnAfterWallHit(new GameObjectEventArgs(gameObject)); } }
private void SetFacingBackwards() { Facing = FacingState.Backward; //CurrentFrameOffset = 5; }
private void SetFacingForwards() { Facing = FacingState.Forward; //CurrentFrameOffset = 4; }
public void faceTile(Tile a_tile) { if (a_tile.getMapPosition().X < m_currentPosition.getMapPosition().X) { if (MathManager.isEven((int)m_currentPosition.getMapPosition().X)) { m_facingState = a_tile.getMapPosition().Y == m_currentPosition.getMapPosition().Y ? m_facingState = FacingState.TopLeft : m_facingState = FacingState.BottomLeft; } else { m_facingState = a_tile.getMapPosition().Y == m_currentPosition.getMapPosition().Y ? m_facingState = FacingState.BottomLeft : m_facingState = FacingState.TopLeft; } } else if (a_tile.getMapPosition().X > m_currentPosition.getMapPosition().X) { if (MathManager.isEven((int)m_currentPosition.getMapPosition().X)) { m_facingState = a_tile.getMapPosition().Y == m_currentPosition.getMapPosition().Y ? m_facingState = FacingState.TopRight : m_facingState = FacingState.BottomRight; } else { m_facingState = a_tile.getMapPosition().Y == m_currentPosition.getMapPosition().Y ? m_facingState = FacingState.BottomRight : m_facingState = FacingState.TopRight; } } else { m_facingState = a_tile.getMapPosition().Y < m_currentPosition.getMapPosition().Y ? m_facingState = FacingState.Up : m_facingState = FacingState.Down; } }