Skip to content
Snippets Groups Projects
ArrowSpawner.cs 1.09 KiB
Newer Older
  • Learn to ignore specific revisions
  • using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class ArrowSpawner : StateMachineBehaviour
    {
        [SerializeField] GameObject arrowPrefab;
        GameObject arrow;
    
        public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
        {
            if (stateInfo.IsName("shoot"))
            {
    
    Moritz Meyerhof's avatar
    Moritz Meyerhof committed
                int directionArrow = 1;
                if (animator.gameObject.transform.localScale.x < 0f)
                {
                    directionArrow = -1;
                }
                Vector2 spawnPos = animator.gameObject.transform.position;
                spawnPos += new Vector2(1 * directionArrow, 0);
    
    Moritz Meyerhof's avatar
    Moritz Meyerhof committed
                arrow = Instantiate(arrowPrefab,spawnPos,Quaternion.identity);
                ChangeArrowDirection(arrow,directionArrow);
    
                ArrowController arrowController = arrow.GetComponentInChildren<ArrowController>();
                arrowController.direction = directionArrow;
    
    Moritz Meyerhof's avatar
    Moritz Meyerhof committed
    
        void ChangeArrowDirection(GameObject arrow, int directionArrow)
        {
            arrow.transform.Rotate(0, 0, 90 * directionArrow);
            
        }