using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; using UnityEngine; using static UnityEngine.GraphicsBuffer; [CreateAssetMenu(menuName = "AI/Action/Shoot")] public class ShootingAction : Action { public override void Act(FiniteStateMachine fsm) { if (!fsm.dic.HasKey("WeaponScript")) fsm.dic.SetValue("WeaponScript", fsm.GetComponent<WeaponScript>()); if (!fsm.dic.HasKey("weaponSelected")) fsm.dic.SetValue("weaponSelected", false); if (!(bool)fsm.dic.GetValue("weaponSelected")) { int i = Random.Range(0, (int)(fsm.dic.GetValue("WeaponScript") as WeaponScript).weapons.Count); (fsm.dic.GetValue("WeaponScript") as WeaponScript).currentWeapon = i; fsm.dic.SetValue("weaponSelected", true); } Vector3 dir = Vector3.Normalize(fsm.GetTarget().transform.position - fsm.transform.position); (fsm.dic.GetValue("WeaponScript") as WeaponScript).Shoot(dir); } }