using System.Collections; using System.Collections.Generic; using UnityEngine; /// /// Áñµ¯·¢ÉäÆ÷ /// public class Weapon_GrenadeLauncher : WeaponBase { public override string name => "Áñµ¯·¢ÉäÆ÷"; public override string iconPath => "art/ui/weaponicon/grenade"; public override AutoMode autoMode => AutoMode.Interval; public override float interval => 2f; private string prefabPath = "prefabs/grenade/grenade_v1"; // ÌØÐ§vfx private string vfxPath = "prefabs/effect/eff_launch"; Vector3 GetRandomLaunchGrenadeDirection(CrewScript crew) { Vector3 dirOnPlane = Quaternion.Euler(0, 0, Random.Range(-15f, 15f)) * new Vector3(crew.aimDirection.x, crew.aimDirection.y, 0); dirOnPlane = dirOnPlane.normalized; Vector3 dir = new Vector3(dirOnPlane.x, dirOnPlane.y, Random.Range(0f, 1f)).normalized; return dir.normalized; } public override void OnTrigger(GameObject owner) { CrewScript crew = owner.GetComponent(); // grenade TestPeaceMakerGrenade grenade = UnityEngine.Object.Instantiate(ResourceManager.Instance.Load(prefabPath)); Vector3 position = owner.GetComponent().position + new Vector3(0, 0, 1.8f); grenade.Set(position, GetRandomLaunchGrenadeDirection(crew), Random.Range(8f, 10f)); grenade.gameObject.SetActive(true); // vfx GameObject eff = UnityEngine.Object.Instantiate(ResourceManager.Instance.Load(vfxPath), crew.transform); eff.transform.position = crew.launchPoint.position; eff.SetActive(true); } }