From 71ae3d755a03a706d93291ca57c6de8e6f0d5926 Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Apr 2022 09:58:56 +0800 Subject: * rename equip to weapon --- .../Scripts/Weapons/Weapon_GrenadeLauncher.cs | 49 ++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 SurvivalTest/Assets/Scripts/Weapons/Weapon_GrenadeLauncher.cs (limited to 'SurvivalTest/Assets/Scripts/Weapons/Weapon_GrenadeLauncher.cs') diff --git a/SurvivalTest/Assets/Scripts/Weapons/Weapon_GrenadeLauncher.cs b/SurvivalTest/Assets/Scripts/Weapons/Weapon_GrenadeLauncher.cs new file mode 100644 index 0000000..3a4457a --- /dev/null +++ b/SurvivalTest/Assets/Scripts/Weapons/Weapon_GrenadeLauncher.cs @@ -0,0 +1,49 @@ +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 => 0.5f; + + 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); + + } +} \ No newline at end of file -- cgit v1.1-26-g67d0