summaryrefslogtreecommitdiff
path: root/SurvivalTest/Assets/Scripts/Weapons
diff options
context:
space:
mode:
Diffstat (limited to 'SurvivalTest/Assets/Scripts/Weapons')
-rw-r--r--SurvivalTest/Assets/Scripts/Weapons/Boomerang.meta8
-rw-r--r--SurvivalTest/Assets/Scripts/Weapons/Boomerang/Boomerang.cs73
-rw-r--r--SurvivalTest/Assets/Scripts/Weapons/Boomerang/Boomerang.cs.meta11
-rw-r--r--SurvivalTest/Assets/Scripts/Weapons/Boomerang/BoomerangAfterImage.cs26
-rw-r--r--SurvivalTest/Assets/Scripts/Weapons/Boomerang/BoomerangAfterImage.cs.meta11
-rw-r--r--SurvivalTest/Assets/Scripts/Weapons/Boomerang/Weapon_Boomerang.cs56
-rw-r--r--SurvivalTest/Assets/Scripts/Weapons/Boomerang/Weapon_Boomerang.cs.meta (renamed from SurvivalTest/Assets/Scripts/Weapons/Weapon_Boomerang.cs.meta)0
-rw-r--r--SurvivalTest/Assets/Scripts/Weapons/Weapon_Boomerang.cs34
8 files changed, 185 insertions, 34 deletions
diff --git a/SurvivalTest/Assets/Scripts/Weapons/Boomerang.meta b/SurvivalTest/Assets/Scripts/Weapons/Boomerang.meta
new file mode 100644
index 0000000..3ed9b00
--- /dev/null
+++ b/SurvivalTest/Assets/Scripts/Weapons/Boomerang.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ec5e14b226b545d4fb3041c338d56321
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/SurvivalTest/Assets/Scripts/Weapons/Boomerang/Boomerang.cs b/SurvivalTest/Assets/Scripts/Weapons/Boomerang/Boomerang.cs
new file mode 100644
index 0000000..5d2a5bb
--- /dev/null
+++ b/SurvivalTest/Assets/Scripts/Weapons/Boomerang/Boomerang.cs
@@ -0,0 +1,73 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 回旋镖
+/// </summary>
+public class Boomerang : MonoBehaviour
+{
+ public BoomerangAfterImage m_AfterImage;
+
+ private Vector2 m_Direction;
+
+ // 当前速度
+ private float m_Speed;
+
+ // 最大飞行距离
+ private float m_MaxDist;
+
+ private float m_RotateSpeed = 500f;
+
+ Coroutine m_CoAfterImage;
+
+ public void Set(Vector2 dir, float speed, float maxDist)
+ {
+ m_Direction = dir;
+ m_Speed = speed;
+ m_MaxDist = maxDist;
+
+ m_CoAfterImage = StartCoroutine(CoAfterImage(0.05f));
+ }
+
+ private void Update()
+ {
+ Vector2 move = m_Direction * m_Speed * Time.deltaTime;
+
+ m_MaxDist -= move.magnitude;
+ if(m_MaxDist <= 0)
+ {
+ Destroy(this.gameObject);
+
+ if (m_CoAfterImage != null)
+ {
+ StopCoroutine(m_CoAfterImage);
+ }
+
+ return;
+ }
+
+ Vector3 pos = transform.position;
+ pos += new Vector3(move.x, move.y, 0);
+
+ transform.position = pos;
+
+ transform.rotation *= Quaternion.Euler(0,0,m_RotateSpeed * Time.deltaTime);
+ }
+
+ IEnumerator CoAfterImage(float interval)
+ {
+ while (true)
+ {
+ BoomerangAfterImage afterImage = BoomerangAfterImage.Instantiate(m_AfterImage);
+ afterImage.Set(this);
+ afterImage.transform.position = this.transform.position;
+ afterImage.transform.localScale= new Vector3(0.5f, 0.5f, 1f);
+ afterImage.transform.rotation = this.transform.rotation;
+ afterImage.gameObject.SetActive(true);
+
+ yield return new WaitForSeconds(interval);
+ }
+ }
+
+} \ No newline at end of file
diff --git a/SurvivalTest/Assets/Scripts/Weapons/Boomerang/Boomerang.cs.meta b/SurvivalTest/Assets/Scripts/Weapons/Boomerang/Boomerang.cs.meta
new file mode 100644
index 0000000..d400625
--- /dev/null
+++ b/SurvivalTest/Assets/Scripts/Weapons/Boomerang/Boomerang.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 4679a949f0f94fe47b708ff7b0d7ffb9
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/SurvivalTest/Assets/Scripts/Weapons/Boomerang/BoomerangAfterImage.cs b/SurvivalTest/Assets/Scripts/Weapons/Boomerang/BoomerangAfterImage.cs
new file mode 100644
index 0000000..25461ae
--- /dev/null
+++ b/SurvivalTest/Assets/Scripts/Weapons/Boomerang/BoomerangAfterImage.cs
@@ -0,0 +1,26 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class BoomerangAfterImage : MonoBehaviour
+{
+ public SpriteRenderer sr;
+
+
+ Boomerang m_Boomerang;
+
+ public void Set(Boomerang boomerang)
+ {
+ m_Boomerang = boomerang;
+ }
+
+ private void Update()
+ {
+ //sr.sprite = m_Boomerang.GetComponent<SpriteRenderer>().sprite;
+ if(m_Boomerang != null)
+ {
+ //this.transform.rotation = m_Boomerang.transform.rotation;
+ }
+ }
+
+} \ No newline at end of file
diff --git a/SurvivalTest/Assets/Scripts/Weapons/Boomerang/BoomerangAfterImage.cs.meta b/SurvivalTest/Assets/Scripts/Weapons/Boomerang/BoomerangAfterImage.cs.meta
new file mode 100644
index 0000000..28b5eba
--- /dev/null
+++ b/SurvivalTest/Assets/Scripts/Weapons/Boomerang/BoomerangAfterImage.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a6a150d5108a43f4386bda3a1707d743
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/SurvivalTest/Assets/Scripts/Weapons/Boomerang/Weapon_Boomerang.cs b/SurvivalTest/Assets/Scripts/Weapons/Boomerang/Weapon_Boomerang.cs
new file mode 100644
index 0000000..f5588cd
--- /dev/null
+++ b/SurvivalTest/Assets/Scripts/Weapons/Boomerang/Weapon_Boomerang.cs
@@ -0,0 +1,56 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 回旋镖
+/// </summary>
+public class Weapon_Boomerang : WeaponBase
+{
+ public override AutoMode autoMode => AutoMode.Condition;
+
+ public override string name => "回旋镖";
+
+ public override string iconPath => "art/ui/weaponicon/boomerang";
+
+ string prefabPath = "prefabs/weapon/boomerang";
+
+ Boomerang boomerang;
+
+ /// 接到回旋镖后重新掷出,否则间隔一段时间投掷
+ /// </summary>
+ /// <param name="owner"></param>
+ /// <returns></returns>
+ public override bool CheckCondition(GameObject owner)
+ {
+ return true;
+ }
+
+ public override void OnInitialize(GameObject owner)
+ {
+ base.OnInitialize(owner);
+ boomerang = null;
+ }
+
+ public override void OnTrigger(GameObject owner)
+ {
+ if (boomerang == null)
+ {
+ boomerang = UnityEngine.Object.Instantiate<Boomerang>(ResourceManager.Instance.Load<Boomerang>(prefabPath));
+ CrewScript crew = owner.GetComponent<CrewScript>();
+ Vector3 pos = crew.centre.position + new Vector3(crew.aimDirection.x, crew.aimDirection.y, 0) * 0.3f;
+ boomerang.transform.position = pos;
+ boomerang.Set(crew.aimDirection, 10f, 10f);
+ }
+ }
+
+ public override void OnStop(GameObject owner)
+ {
+
+ }
+
+ public override void Update(GameObject owner)
+ {
+ }
+
+} \ No newline at end of file
diff --git a/SurvivalTest/Assets/Scripts/Weapons/Weapon_Boomerang.cs.meta b/SurvivalTest/Assets/Scripts/Weapons/Boomerang/Weapon_Boomerang.cs.meta
index 401fde6..401fde6 100644
--- a/SurvivalTest/Assets/Scripts/Weapons/Weapon_Boomerang.cs.meta
+++ b/SurvivalTest/Assets/Scripts/Weapons/Boomerang/Weapon_Boomerang.cs.meta
diff --git a/SurvivalTest/Assets/Scripts/Weapons/Weapon_Boomerang.cs b/SurvivalTest/Assets/Scripts/Weapons/Weapon_Boomerang.cs
deleted file mode 100644
index d701c83..0000000
--- a/SurvivalTest/Assets/Scripts/Weapons/Weapon_Boomerang.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-/// <summary>
-/// 回旋镖
-/// </summary>
-public class Weapon_Boomerang : WeaponBase
-{
- public override AutoMode autoMode => AutoMode.Condition;
-
- public override string name => "回旋镖";
-
- public override string iconPath => "art/ui/weaponicon/boomerang";
-
- /// <summary>
- /// 接到回旋镖后重新掷出,否则间隔一段时间投掷
- /// </summary>
- /// <param name="owner"></param>
- /// <returns></returns>
- public override bool CheckCondition(GameObject owner)
- {
- return false;
- }
-
- public override void OnTrigger(GameObject owner)
- {
- }
-
- public override void Update(GameObject owner)
- {
- }
-
-} \ No newline at end of file