void UpdateAnimDir() { if (m_moving.Veloc.magnitude >= (m_moving.MaxSpeed / 2f)) { m_animCtrl.SetAnimDirection(m_moving.Veloc); } }
protected void UpdateMovement(float fAxisX, float fAxisY) { m_timerBlockDir -= Time.deltaTime; m_phyChar.Dir = new Vector3(fAxisX, fAxisY, 0); m_animCtrl.IsPlaying = m_phyChar.IsMoving; m_animCtrl.SetAnimDirection(m_phyChar.Dir); }
IEnumerator DoLogic() { m_physicBhv.Dir = Vector2.zero; m_dirAnim.IsPlaying = false; yield return(new WaitForSeconds(Random.Range(MinStepDelay, MaxStepDelay))); while (true) { m_dirAnim.IsPlaying = true; m_velocity = Random.rotation * Vector2.right; m_velocity = m_velocity.normalized * MovingStepDist; if (!Target) { Target = FindObjectOfType <PlayerController>().gameObject; } if (Target) { Vector2 vDist = FleeFromTarget ? transform.position - Target.transform.position : Target.transform.position - transform.position; if (vDist.magnitude <= SightDistance) { m_velocity = Vector2.Lerp(vDist, m_velocity, Random.value / 8f); } } for (float dist = 0; dist < MovingStepDist;) { yield return(new WaitForFixedUpdate()); if (m_physicBhv.CollFlags != 0) { switch (m_physicBhv.CollFlags) { case PhysicCharBehaviour.eCollFlags.DOWN: DoCollision(Vector2.up); break; case PhysicCharBehaviour.eCollFlags.UP: DoCollision(-Vector2.up); break; case PhysicCharBehaviour.eCollFlags.RIGHT: DoCollision(-Vector2.right); break; case PhysicCharBehaviour.eCollFlags.LEFT: DoCollision(Vector2.right); break; } } Debug.DrawRay(transform.position, m_velocity); Vector2 disp = m_velocity.normalized * MovingSpeed; dist += disp.magnitude * Time.deltaTime; m_physicBhv.MaxSpeed = MovingSpeed; m_physicBhv.Dir = disp; //transform.position += (Vector3)disp; if (Time.frameCount % 4 == 0) { m_dirAnim.SetAnimDirection(disp); } } m_physicBhv.Dir = Vector2.zero; m_dirAnim.IsPlaying = false; yield return(new WaitForSeconds(Random.Range(MinStepDelay, MaxStepDelay))); } }
// Update is called once per frame void Update() { if (m_baseAnimCtrl.AnimDirection == eAnimDir.Right) { EquipSprite.SetAnimDirection(Vector2.right); //qRot.eulerAngles = new Vector3 (0f, 0f, 0f); } else if (m_baseAnimCtrl.AnimDirection == eAnimDir.Left) { EquipSprite.SetAnimDirection(Vector2.left); } else if (m_baseAnimCtrl.AnimDirection == eAnimDir.Down) { EquipSprite.SetAnimDirection(Vector2.down); } else // UP { EquipSprite.SetAnimDirection(Vector2.up); } }
// Update is called once per frame void LateUpdate() { curr = this.transform.position; targetTile = spawnTile; //Is the player close enough to trigger AI? GameObject[] players = GameObject.FindGameObjectsWithTag("Player"); int i = 0; for (i = 0; i < players.Length; i++) { if ((curr - players [i].transform.position).magnitude <2f && (this.transform.position - players [i].transform.position).magnitude> .30f) { targetTile = players [i].transform.position; foundTarg = true; break; } } if (foundTarg) { //Find best move to reach goal move = findPath(); //Ajust decision to activate movement system if (curr.x + move.x != targetTile.x + .3f || curr.x + move.x != targetTile.x - .3f || curr.y + move.y != targetTile.y + .3f || curr.y + move.y != targetTile.y - .3f) { m_animCtrl.SetAnimDirection(new Vector2(move.x, move.y)); if (Mathf.Abs(move.y) >= Mathf.Abs(move.x) && move.y > 0) { tmov.ActivateTrigger(TileMovementBehaviour.eTrigger.MoveUp); } else if (Mathf.Abs(move.y) >= Mathf.Abs(move.x) && move.y < 0) { tmov.ActivateTrigger(TileMovementBehaviour.eTrigger.MoveDown); } else if (Mathf.Abs(move.y) <= Mathf.Abs(move.x) && move.x < 0) { tmov.ActivateTrigger(TileMovementBehaviour.eTrigger.MoveLeft); } else if (Mathf.Abs(move.y) <= Mathf.Abs(move.x) && move.x > 0) { tmov.ActivateTrigger(TileMovementBehaviour.eTrigger.MoveRight); } } } }
IEnumerator DoLogic() { m_physicBhv.Dir = Vector2.zero; m_dirAnim.IsPlaying = false; yield return(new WaitForSeconds(Random.Range(MinStepDelay, MaxStepDelay))); while (true) { m_dirAnim.IsPlaying = true; m_velocity = Random.rotation * Vector2.right; m_velocity = m_velocity.normalized * MovingStepDist; for (float dist = 0; dist < MovingStepDist;) { yield return(new WaitForFixedUpdate()); if (m_physicBhv.CollFlags != 0) { switch (m_physicBhv.CollFlags) { case PhysicCharBehaviour.eCollFlags.DOWN: DoCollision(Vector2.up); break; case PhysicCharBehaviour.eCollFlags.UP: DoCollision(-Vector2.up); break; case PhysicCharBehaviour.eCollFlags.RIGHT: DoCollision(-Vector2.right); break; case PhysicCharBehaviour.eCollFlags.LEFT: DoCollision(Vector2.right); break; } } Debug.DrawRay(transform.position, m_velocity); Vector2 disp = m_velocity.normalized * MovingSpeed; dist += disp.magnitude * Time.deltaTime; m_physicBhv.MaxSpeed = MovingSpeed; m_physicBhv.Dir = disp; m_dirAnim.SetAnimDirection(disp); } m_physicBhv.Dir = Vector2.zero; m_dirAnim.IsPlaying = false; yield return(new WaitForSeconds(Random.Range(MinStepDelay, MaxStepDelay))); } }
void UpdateAnimDir() { m_animCtrl.IsPlaying = m_moving.Veloc.magnitude > Vector3.kEpsilon; m_animCtrl.SetAnimDirection(m_moving.Veloc); }
void UpdateMovement(float fAxisX, float fAxisY) { m_phyChar.Dir = new Vector3(fAxisX, fAxisY, 0); m_animCtrl.IsPlaying = m_phyChar.IsMoving; m_animCtrl.SetAnimDirection(m_phyChar.Dir); }
// Update is called once per frame void Update() { weapAnim.AnimDirection = m_animCtrl.AnimDirection; if (Attacking == false) { Quaternion qRot = WeaponSprite.transform.localRotation; if (weapAnim.AnimDirection == eAnimDir.Right) { WeaponSprite.sprite = WeaponSpriteRight; idolPos = WeaponSpriteRight; Vector3 vOff = vOffDirRight [(int)m_animCtrl.CurrentFrame % vOffDirRight.Length]; WeaponSprite.transform.localPosition = vOff; } else if (weapAnim.AnimDirection == eAnimDir.Left) { WeaponSprite.sprite = WeaponSpriteLeft; Vector3 vOff = vOffDirLeft [(int)m_animCtrl.CurrentFrame % vOffDirLeft.Length]; idolPos = WeaponSpriteLeft; WeaponSprite.transform.localPosition = vOff; } else if (weapAnim.AnimDirection == eAnimDir.Down) { WeaponSprite.sprite = WeaponSpriteDown; idolPos = WeaponSpriteDown; Vector3 vOff = vOffDirDown [(int)m_animCtrl.CurrentFrame % vOffDirDown.Length]; WeaponSprite.transform.localPosition = vOff; } else // UP { WeaponSprite.sprite = WeaponSpriteUp; idolPos = WeaponSpriteUp; Vector3 vOff = vOffDirUp [(int)m_animCtrl.CurrentFrame % vOffDirDown.Length]; WeaponSprite.transform.localPosition = vOff; } } if (Input.GetKey(KeyCode.Space) && !firstAbilityUsed && Attacking == false) { weapon = GameObject.FindGameObjectWithTag("Weapon"); BoxCollider weapCollid; Attacking = true; if (weapon.GetComponent <BoxCollider> () == null) { weapon.AddComponent <BoxCollider> (); } weapCollid = weapon.GetComponent <BoxCollider> (); switch (weapAnim.AnimDirection) { case eAnimDir.Up: weapAnim.IsPlaying = true; Vector3 temp = WeaponSprite.transform.localPosition; WeaponSprite.transform.localPosition = temp; weapCollid.size = new Vector3(0.32f, 0.32f, 1f); weapCollid.center = new Vector3(0f, 0.32f, 0f); weapCollid.isTrigger = true; break; case eAnimDir.Down: weapAnim.IsPlaying = true; weapCollid.size = new Vector3(0.32f, 0.32f, 1f); weapCollid.center = new Vector3(0f, -0.32f, 0f); weapCollid.isTrigger = true; break; case eAnimDir.Left: weapAnim.SetAnimDirection(new Vector2(1f, 0f)); weapAnim.IsPlaying = true; Vector3 temp2 = WeaponSprite.transform.localPosition; WeaponSprite.transform.localPosition = temp2; weapCollid.size = new Vector3(0.32f, 0.32f, 1f); weapCollid.center = new Vector3(-0.32f, 0f, 0f); weapCollid.isTrigger = true; break; case eAnimDir.Right: weapAnim.SetAnimDirection(new Vector2(-1f, 0f)); weapAnim.IsPlaying = true; weapCollid.size = new Vector3(0.32f, 0.32f, 1f); weapCollid.center = new Vector3(0.32f, 0f, 0f); weapCollid.isTrigger = true; break; } } else if (Input.GetKey(KeyCode.V) && !(firstAbilityUsed) && Attacking == false) { firstAbilityUsed = true; player = this.transform.position; switch (m_animCtrl.AnimDirection) { case eAnimDir.Up: player.y += 0.32f; if (obj3 == null) { obj1 = (GameObject)Instantiate(Abilityprefab, player, this.transform.rotation); obj1.GetComponent <BoxCollider> ().size = new Vector3(0.64f, 0.64f, 1f); obj1.transform.localScale = new Vector3(0.5f, 0.5f, 1f); obj1.transform.localPosition = new Vector3(obj1.transform.localPosition.x, obj1.transform.localPosition.y, 0.25f); player.y += 0.32f; obj2 = (GameObject)Instantiate(Abilityprefab, player, this.transform.rotation); obj2.transform.localScale = new Vector3(0.75f, 0.75f, 1f); player.y += 0.32f; obj3 = (GameObject)Instantiate(Abilityprefab, player, this.transform.rotation); Destroy((GameObject)obj1, 0.1f); Destroy(obj2, 0.3f); Destroy(obj3, 0.5f); } break; case eAnimDir.Down: if (obj3 == null) { player.y += -0.32f; obj1 = (GameObject)Instantiate(Abilityprefab, player, this.transform.rotation); obj1.GetComponent <BoxCollider> ().size = new Vector3(0.64f, 0.64f, 1f); player.y += -0.32f; player.z -= 0.001f; obj2 = (GameObject)Instantiate(Abilityprefab, player, this.transform.rotation); player.y += -0.32f; player.z -= 0.001f; obj3 = (GameObject)Instantiate(Abilityprefab, player, this.transform.rotation); obj1.transform.localScale = new Vector3(0.5f, 0.5f, 1f); obj2.transform.localScale = new Vector3(0.75f, 0.75f, 1f); Destroy(obj1, 0.1f); Destroy(obj2, 0.3f); Destroy(obj3, 0.5f); } break; case eAnimDir.Left: if (obj3 == null) { player.x += -0.32f; obj1 = (GameObject)Instantiate(Abilityprefab, player, this.transform.rotation); obj1.transform.localScale = new Vector3(0.5f, 0.5f, 1f); obj1.GetComponent <BoxCollider> ().size = new Vector3(0.64f, 0.64f, 1f); player.x += -0.32f; obj2 = (GameObject)Instantiate(Abilityprefab, player, this.transform.rotation); obj2.transform.localScale = new Vector3(0.75f, 0.75f, 1f); player.x += -0.32f; obj3 = (GameObject)Instantiate(Abilityprefab, player, this.transform.rotation); Destroy((GameObject)obj1, 0.1f); Destroy(obj2, 0.3f); Destroy(obj3, 0.5f); } break; case eAnimDir.Right: if (obj3 == null) { player.x += 0.32f; obj1 = (GameObject)Instantiate(Abilityprefab, player, this.transform.rotation); obj1.transform.localScale = new Vector3(0.5f, 0.5f, 1f); obj1.GetComponent <BoxCollider> ().size = new Vector3(0.64f, 0.64f, 1f); player.x += 0.32f; obj2 = (GameObject)Instantiate(Abilityprefab, player, this.transform.rotation); obj2.transform.localScale = new Vector3(0.75f, 0.75f, 1f); player.x += 0.32f; obj3 = (GameObject)Instantiate(Abilityprefab, player, this.transform.rotation); Destroy((GameObject)obj1, 0.1f); Destroy(obj2, 0.3f); Destroy(obj3, 0.5f); StartCoroutine(wait4()); } break; } // while (firstAbilityUsed == false) { // if (obj3 == null) { // firstAbilityUsed = true; // } // } firstAbilityUsed = false; } }
protected override void Update() { int tileIdx = RpgMapHelper.GetTileIdxByPosition(transform.position); if (tileIdx != m_lastTileIdx || m_lastFogSightLength != FogSightLength) { RpgMapHelper.RemoveFogOfWarWithFade(transform.position, FogSightLength); } m_lastFogSightLength = FogSightLength; m_lastTileIdx = tileIdx; if (teleporting == true && UnityEngine.SceneManagement.SceneManager.GetActiveScene().name == newScene) { teleporting = false; teleport(); } Vector3 savedDir = m_phyChar.Dir; m_phyChar.Dir = savedDir; m_tileMovementBehaviour.enabled = (Vehicle == null); //DirectionalAnimation[] anims = GetComponentsInChildren<DirectionalAnimation> (); if (m_tileMovementBehaviour.enabled) { if (Input.GetKey(KeyCode.Space) && canMove) { attack.enabled = true; attack.SetAnimDirection(currDir); attack.IsPlaying = true; attacking(); attack.OnAnimationLoopOver += reset; canMove = false; } else if (canMove) { if (Input.GetKey(KeyCode.RightArrow)) { if (Input.GetAxis("Horizontal") < .2) { m_animCtrl.SetAnimDirection(Vector3.right); currDir = Vector3.right; // for (int i = 0; i < anims.Length; i++) { // // anims[i].SetAnimDirection(Vector3.right); // } } else { m_animCtrl.SetAnimDirection(Vector3.right); currDir = Vector3.right; m_tileMovementBehaviour.ActivateTrigger(TileMovementBehaviour.eTrigger.MoveRight); } } else if (Input.GetKey(KeyCode.LeftArrow)) { if (Mathf.Abs(Input.GetAxis("Horizontal")) < .2) { m_animCtrl.SetAnimDirection(Vector3.left); currDir = Vector3.left; // for (int i = 0; i < anims.Length; i++) { // // anims[i].SetAnimDirection(Vector3.left); // } } else { m_animCtrl.SetAnimDirection(Vector3.left); currDir = Vector3.left; m_tileMovementBehaviour.ActivateTrigger(TileMovementBehaviour.eTrigger.MoveLeft); } } else if (Input.GetKey(KeyCode.UpArrow)) { if (Input.GetAxis("Vertical") < .2) { m_animCtrl.SetAnimDirection(Vector3.up); currDir = Vector3.up; // for (int i = 0; i < anims.Length; i++) { // // anims[i].SetAnimDirection(Vector3.up); // } } else { m_animCtrl.SetAnimDirection(Vector3.up); currDir = Vector3.up; m_tileMovementBehaviour.ActivateTrigger(TileMovementBehaviour.eTrigger.MoveUp); } } else if (Input.GetKey(KeyCode.DownArrow)) { if (Mathf.Abs(Input.GetAxis("Vertical")) < .2) { m_animCtrl.SetAnimDirection(Vector3.down); currDir = Vector3.down; // for (int i = 0; i < anims.Length; i++) { // // anims[i].SetAnimDirection(Vector3.down); // } } else { m_animCtrl.SetAnimDirection(Vector3.down); currDir = Vector3.down; m_tileMovementBehaviour.ActivateTrigger(TileMovementBehaviour.eTrigger.MoveDown); } } } } }
void UpdateAnimDir() { m_animCtrl.IsPlaying = m_moving.Veloc.magnitude > 0.01f; m_animCtrl.SetAnimDirection(m_moving.Veloc); }