summaryrefslogtreecommitdiff
path: root/AlienSurvival/Assets/Test/Scripts/TestPeaceMaker.cs
diff options
context:
space:
mode:
Diffstat (limited to 'AlienSurvival/Assets/Test/Scripts/TestPeaceMaker.cs')
-rw-r--r--AlienSurvival/Assets/Test/Scripts/TestPeaceMaker.cs75
1 files changed, 55 insertions, 20 deletions
diff --git a/AlienSurvival/Assets/Test/Scripts/TestPeaceMaker.cs b/AlienSurvival/Assets/Test/Scripts/TestPeaceMaker.cs
index 0af8d53..2ec06e0 100644
--- a/AlienSurvival/Assets/Test/Scripts/TestPeaceMaker.cs
+++ b/AlienSurvival/Assets/Test/Scripts/TestPeaceMaker.cs
@@ -15,6 +15,7 @@ public class TestPeaceMaker : MonoBehaviour
[SerializeField] private TestPeaceMakerBullet m_Bullet;
[SerializeField] private TestPeaceMakerGrenade m_Grenade;
[SerializeField] private Vector2 m_Zoom;
+ [SerializeField] private GameObject m_LaunchVfx;
private Vector3 zoomIn
{
@@ -36,6 +37,7 @@ public class TestPeaceMaker : MonoBehaviour
private SpriteRenderer m_SpriteRenderer;
private TestFakeHeight m_FakeHeight;
private Coroutine m_CoFire;
+ private Coroutine m_CoLaunchGrenade;
private Vector3 m_PreMouse;
@@ -68,12 +70,11 @@ public class TestPeaceMaker : MonoBehaviour
SetAim();
bool isFire = Fire();
-
- LaunchGrenade();
+ bool isGrenade = LaunchGrenade();
CameraFollow();
- CameraZoom(/*isMove ||*/ isFire);
+ CameraZoom(/*isMove ||*/ isFire || isGrenade);
}
void CameraZoom(bool zout)
@@ -107,7 +108,9 @@ public class TestPeaceMaker : MonoBehaviour
float x = Input.GetAxisRaw("Horizontal");
float y = Input.GetAxisRaw("Vertical");
- if (x != 0 || y != 0)
+ bool isMove = x != 0 || y != 0;
+
+ if (isMove)
{
Vector2 direction = new Vector2(x, y).normalized;
@@ -129,7 +132,7 @@ public class TestPeaceMaker : MonoBehaviour
}
}
- return x != 0 || y != 0;
+ return isMove;
}
void SetAim()
@@ -200,24 +203,32 @@ public class TestPeaceMaker : MonoBehaviour
return true;
}
- void LaunchGrenade()
+ bool LaunchGrenade()
{
- if (Input.GetButtonDown("Fire2"))
+ if (Input.GetButtonDown("Fire2") || (Input.GetAxis("BombTrigger") == 1))
{
- TestPeaceMakerGrenade grenade = Instantiate<TestPeaceMakerGrenade>(m_Grenade);
-
- Vector3 position = m_FakeHeight.position + new Vector3(0, 0, 1.8f);
-
- grenade.Set(position, GetRandomDirection(), Random.Range(8f, 10f));
-
- grenade.gameObject.SetActive(true);
+ if (m_CoLaunchGrenade == null)
+ {
+ m_CoLaunchGrenade = StartCoroutine(coLaunchGrenade(0.2f));
+ }
}
+ if (!Input.GetButton("Fire2") && (Input.GetAxis("BombTrigger") == 0))
+ {
+ if (m_CoLaunchGrenade != null)
+ {
+ StopCoroutine(m_CoLaunchGrenade);
+ m_CoLaunchGrenade = null;
+ }
+ return false;
+ }
+ return true;
}
Vector3 GetRandomDirection()
{
- Vector3 dirOnPlane = Quaternion.Euler(0, 0, Random.Range(-30f, 30f)) * new Vector3(m_AimDirection.x, m_AimDirection.y, 0);
- Vector3 dir = Quaternion.Euler(Random.Range(30f, 80f), 0, 0) * dirOnPlane;
+ Vector3 dirOnPlane = Quaternion.Euler(0, 0, Random.Range(-15f, 15f)) * new Vector3(m_AimDirection.x, m_AimDirection.y, 0);
+ dirOnPlane = dirOnPlane.normalized;
+ Vector3 dir = new Vector3(dirOnPlane.x, dirOnPlane.y, Random.Range(0f,0.5f)).normalized;
return dir.normalized;
}
@@ -225,12 +236,36 @@ public class TestPeaceMaker : MonoBehaviour
{
while (true)
{
- TestPeaceMakerBullet bullet = Instantiate<TestPeaceMakerBullet>(m_Bullet);
+ CreateBullet(m_AimDirection, 12f, 2f);
+ //CreateBullet(TestMathHelper.Rotate(m_AimDirection, 10 * Mathf.Deg2Rad), 12f, 2f);
+ //CreateBullet(TestMathHelper.Rotate(m_AimDirection, -10 * Mathf.Deg2Rad), 12f, 2f);
- bullet.transform.position = m_Arrow.transform.position + new Vector3(m_AimDirection.x, m_AimDirection.y, 0) * 1f;
+ yield return new WaitForSeconds(interval);
+ }
+ }
+
+ TestPeaceMakerBullet CreateBullet(Vector2 dir, float speed, float lifeTime)
+ {
+ TestPeaceMakerBullet bullet = Instantiate<TestPeaceMakerBullet>(m_Bullet);
+
+ bullet.transform.position = m_Arrow.transform.position + new Vector3(m_AimDirection.x, m_AimDirection.y, 0) * -0.3f;
- bullet.Set(m_AimDirection, 12f, 2f);
- bullet.gameObject.SetActive(true);
+ bullet.Set(dir, speed, lifeTime);
+ bullet.gameObject.SetActive(true);
+
+ return bullet;
+ }
+
+ IEnumerator coLaunchGrenade(float interval)
+ {
+ while (true)
+ {
+ TestPeaceMakerGrenade grenade = Instantiate<TestPeaceMakerGrenade>(m_Grenade);
+
+ Vector3 position = m_FakeHeight.position + new Vector3(0, 0, 1.8f);
+
+ grenade.Set(position, GetRandomDirection(), Random.Range(8f, 10f));
+ grenade.gameObject.SetActive(true);
yield return new WaitForSeconds(interval);
}