public void Update() { // Jump off the wall if the player presses jump if (_wallRunning && Ref.Input.inputActions.jump.WasPressed) { StopWallRunning(Ref.Hero); return; } HeroController hc = Ref.Hero; if (hc == null || !_wallRunning) { return; } GameObject hero = hc.gameObject; // Handle movement of the hero // Bounds checking is only in the direction the player is currently moving, but this should be fine if (hc.transform.position.y < transform.position.y + _box.size.y / 2 && Ref.Input.inputActions.left.IsPressed) { hc.FaceLeft(); hero.transform.SetPositionX(transform.position.x + _box.size.x + .15f); hero.transform.SetPositionY(hero.transform.position.y + hc.GetRunSpeed() * Time.deltaTime); hc.GetComponent <tk2dSpriteAnimator>().Play(hc.GetRunAnimName()); } else if (hc.transform.position.y > transform.position.y - _box.size.y / 2 && Ref.Input.inputActions.right.IsPressed) { hc.FaceRight(); hero.transform.SetPositionX(transform.position.x + _box.size.x + .15f); hero.transform.SetPositionY(hero.transform.position.y - hc.GetRunSpeed() * Time.deltaTime); hc.GetComponent <tk2dSpriteAnimator>().Play(hc.GetRunAnimName()); } else if (Ref.Input.inputActions.left.WasReleased || Ref.Input.inputActions.right.WasReleased) { hc.GetComponent <tk2dSpriteAnimator>().Play("Run To Idle"); hero.GetComponent <Rigidbody2D>().velocity = Vector2.zero; } else { string animName = hc.GetComponent <tk2dSpriteAnimator>().CurrentClip.name; if (animName != "Run To Idle") { hc.GetComponent <tk2dSpriteAnimator>().Play("Idle"); } hero.GetComponent <Rigidbody2D>().velocity = Vector2.zero; } }
private float FaceHero() { var heroSignX = Mathf.Sign(_target.transform.GetPositionX() - gameObject.transform.GetPositionX()); var pScale = gameObject.transform.localScale; gameObject.transform.localScale = new Vector2(Mathf.Abs(pScale.x) * heroSignX, pScale.y); if (heroSignX > 0) { _target.FaceLeft(); } else { _target.FaceRight(); } return(heroSignX); }
IEnumerator IntroText() { yield return(new WaitForSeconds(1f)); if (!ArenaFinder.foundBoss) { GameObject text = Instantiate(GameObject.Find("DialogueManager")); var txtfsm = text.LocateMyFSM("Box Open"); txtfsm.SendEvent("BOX UP"); yield return(null); GameManager.instance.playerData.disablePause = true; _target.RelinquishControl(); _target.StopAnimationControl(); _target.gameObject.GetComponent <tk2dSpriteAnimator>().Play("Idle"); _target.FaceRight(); GameObject sec = text.transform.Find("Text").gameObject; sec.GetComponent <DialogueBox>().StartConversation("FENNEL_INTRO", "testudo"); yield return(new WaitWhile(() => sec.GetComponent <DialogueBox>().currentPage <= 1)); _anim.Play("intro2"); _aud.clip = ArenaFinder.audioClips["sndIntroHead"]; _aud.Play(); yield return(new WaitWhile(() => _anim.IsPlaying())); yield return(new WaitWhile(() => sec.GetComponent <DialogueBox>().currentPage <= 3)); txtfsm.SendEvent("BOX DOWN"); text.SetActive(false); _target.RegainControl(); GameManager.instance.playerData.disablePause = false; _target.StartAnimationControl(); ArenaFinder.foundBoss = true; } introTextDone = true; }