1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// Áñµ¯·¢ÉäÆ÷
/// </summary>
public class Equip_GrenadeLauncher : EquipBase
{
public override string name => "Áñµ¯·¢ÉäÆ÷";
public override string iconPath => "art/ui/equipicon/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<CrewScript>();
// grenade
TestPeaceMakerGrenade grenade = UnityEngine.Object.Instantiate<TestPeaceMakerGrenade>(ResourceManager.Instance.Load<TestPeaceMakerGrenade>(prefabPath));
Vector3 position = owner.GetComponent<TopDownTransform>().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<GameObject>(ResourceManager.Instance.Load<UnityEngine.GameObject>(vfxPath), crew.transform);
eff.transform.position = crew.launchPoint.position;
eff.SetActive(true);
}
}
|