1
This commit is contained in:
8
unity/Assets/Script/CombaSyatem/Ablilty.meta
Normal file
8
unity/Assets/Script/CombaSyatem/Ablilty.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0bce880d4f34ad44cad0c7b839c00b40
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
unity/Assets/Script/CombaSyatem/Ablilty/Boss_A.meta
Normal file
8
unity/Assets/Script/CombaSyatem/Ablilty/Boss_A.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4c3f2f49079af354a9e6a8720d14f5c8
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,26 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 938875dffea6bb64195bcefab599ba64, type: 3}
|
||||
m_Name: BA_Comba_01
|
||||
m_EditorClassIdentifier:
|
||||
abilityName: head-smash
|
||||
abilityID: 0
|
||||
abilityCDTime: 7
|
||||
abilityClass: 0
|
||||
abilityVFX: {fileID: 8300000, guid: 745ff6d9880e7e54ca173e5230018748, type: 3}
|
||||
abilityIsDone: 0
|
||||
abilityDistance: 0
|
||||
maxAbilityCount: 0
|
||||
abilityOffest:
|
||||
- {x: -1.5, y: 0.5}
|
||||
- {x: 1.5, y: 0.5}
|
||||
- {x: 0, y: 0.5}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 98a239d9069b5b64faf5841e97cce79a
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,12 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
[CreateAssetMenu(fileName = "BA_Comba_01", menuName = "Ability/BossA/Comba_01")]
|
||||
public class BA_Comba_01 : CombatAblilityBase
|
||||
{
|
||||
public override void UpdateAblity(Transform target = null)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 938875dffea6bb64195bcefab599ba64
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,25 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 39a345fbb2ba60549bc7be5a613d7fe3, type: 3}
|
||||
m_Name: BA_Comba_02
|
||||
m_EditorClassIdentifier:
|
||||
abilityName: trunk-strike
|
||||
abilityID: 1
|
||||
abilityCDTime: 5
|
||||
abilityClass: 1
|
||||
abilityVFX: {fileID: 0}
|
||||
abilityIsDone: 0
|
||||
abilityDistance: 0
|
||||
maxAbilityCount: 10
|
||||
abilityOffest: []
|
||||
g: {fileID: 5407042768625737065, guid: 883a2a6d0f356484093e8aaf8fc28de9, type: 3}
|
||||
p: {fileID: 0}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1e98ec405a8f8bd47a5c3aefeb8add8f
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,24 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
[CreateAssetMenu(fileName = "BA_Comba_02", menuName = "Ability/BossA/Comba_02")]
|
||||
public class BA_Comba_02 : CombatAblilityBase
|
||||
{
|
||||
|
||||
public GameObject g;
|
||||
public GameObject p;
|
||||
public override void UpdateAblity(Transform target = null)
|
||||
{
|
||||
if (!this.ai.isYuancheng)
|
||||
return;
|
||||
if (currentAbilityCount>=0)
|
||||
{
|
||||
currentAbilityCount--;
|
||||
p = GameObject.Find("BulletFire");
|
||||
GameObject go = Instantiate(g);
|
||||
go.transform.position = p.transform.localPosition;
|
||||
go.GetComponent<BulletObject>().Init(p);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 39a345fbb2ba60549bc7be5a613d7fe3
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,24 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 731be78ab51c1cf4d8d0b91962d058a0, type: 3}
|
||||
m_Name: BA_Comba_03
|
||||
m_EditorClassIdentifier:
|
||||
abilityName: Ba_Comba_03
|
||||
abilityID: 2
|
||||
abilityCDTime: 8
|
||||
abilityClass: 0
|
||||
abilityVFX: {fileID: 0}
|
||||
abilityIsDone: 0
|
||||
abilityDistance: 0
|
||||
maxAbilityCount: 0
|
||||
abilityOffest:
|
||||
- {x: 0, y: 0}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6db587830d2a5ff4ea96be28bccf951d
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,22 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
[CreateAssetMenu(fileName = "BA_Comba_03", menuName = "Ability/BossA/Comba_03")]
|
||||
public class BA_Comba_03 : CombatAblilityBase
|
||||
{
|
||||
float timer = 0;
|
||||
public override void UpdateAblity(Transform target = null)
|
||||
{
|
||||
if (_animator.CheckAnimationTag("Attack_out")||_animator.CheckAnimationTag("Die")||_animator.CheckAnimationTag("summon"))
|
||||
{
|
||||
return;
|
||||
}
|
||||
timer += Time.deltaTime;
|
||||
if(timer>=2f)
|
||||
{
|
||||
this.ai.transform.root.transform.position = target.position;
|
||||
timer = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 731be78ab51c1cf4d8d0b91962d058a0
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
unity/Assets/Script/CombaSyatem/Ablilty/monster_02.meta
Normal file
8
unity/Assets/Script/CombaSyatem/Ablilty/monster_02.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b67e9c2e3d14c514b93428b432d5cc25
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,24 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0bea07483ceab4842b793a021aad4c51, type: 3}
|
||||
m_Name: Comba_01
|
||||
m_EditorClassIdentifier:
|
||||
abilityName: Comba_01
|
||||
abilityID: 0
|
||||
abilityCDTime: 10
|
||||
abilityClass: 0
|
||||
abilityVFX: {fileID: 8300000, guid: b908de737b26207469006f83fe09ee1e, type: 3}
|
||||
abilityIsDone: 0
|
||||
abilityDistance: 3
|
||||
maxAbilityCount: 0
|
||||
abilityOffest:
|
||||
- {x: -2.6, y: 1}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 59208d2b3fbaa8e4b9c91c99092f106e
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,13 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
|
||||
[CreateAssetMenu(fileName = "Comba_01", menuName = "Ability/m_2/Comba_01")]
|
||||
public class Comba_01 : CombatAblilityBase
|
||||
{
|
||||
public override void UpdateAblity(Transform target = null)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0bea07483ceab4842b793a021aad4c51
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,24 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 6676841996372f24788e8af0050c9e53, type: 3}
|
||||
m_Name: Comba_02
|
||||
m_EditorClassIdentifier:
|
||||
abilityName: Comba_02
|
||||
abilityID: 1
|
||||
abilityCDTime: 12
|
||||
abilityClass: 0
|
||||
abilityVFX: {fileID: 8300000, guid: 745ff6d9880e7e54ca173e5230018748, type: 3}
|
||||
abilityIsDone: 0
|
||||
abilityDistance: 3
|
||||
maxAbilityCount: 0
|
||||
abilityOffest:
|
||||
- {x: -2.5, y: 1}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 733b0aea8b566e24681247a79093393a
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,12 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
[CreateAssetMenu(fileName = "Comba_02", menuName = "Ability/m_2/Comba_02")]
|
||||
public class Comba_02 : CombatAblilityBase
|
||||
{
|
||||
public override void UpdateAblity(Transform target = null)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6676841996372f24788e8af0050c9e53
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,24 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 9e2bd46305452774887ab58c9ddeef07, type: 3}
|
||||
m_Name: Comba_03
|
||||
m_EditorClassIdentifier:
|
||||
abilityName: Comba_03
|
||||
abilityID: 2
|
||||
abilityCDTime: 6
|
||||
abilityClass: 0
|
||||
abilityVFX: {fileID: 8300000, guid: 745ff6d9880e7e54ca173e5230018748, type: 3}
|
||||
abilityIsDone: 0
|
||||
abilityDistance: 1
|
||||
maxAbilityCount: 0
|
||||
abilityOffest:
|
||||
- {x: -1, y: 0.6}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eae12eefbdbcc8540bf10c9d846d1683
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,12 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
[CreateAssetMenu(fileName = "Comba_03", menuName = "Ability/m_2/Comba_03")]
|
||||
public class Comba_03 : CombatAblilityBase
|
||||
{
|
||||
public override void UpdateAblity(Transform target = null)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9e2bd46305452774887ab58c9ddeef07
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,24 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 81b457857b635f442bd5f6113faac597, type: 3}
|
||||
m_Name: Comba_04
|
||||
m_EditorClassIdentifier:
|
||||
abilityName: Comba_04
|
||||
abilityID: 3
|
||||
abilityCDTime: 6
|
||||
abilityClass: 0
|
||||
abilityVFX: {fileID: 0}
|
||||
abilityIsDone: 0
|
||||
abilityDistance: 1
|
||||
maxAbilityCount: 0
|
||||
abilityOffest:
|
||||
- {x: -1, y: 0.6}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ec38341ed27661a42992dce9719b0399
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,12 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
[CreateAssetMenu(fileName = "Comba_04", menuName = "Ability/m_2/Comba_04")]
|
||||
public class Comba_04 : CombatAblilityBase
|
||||
{
|
||||
public override void UpdateAblity(Transform target = null)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 81b457857b635f442bd5f6113faac597
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
86
unity/Assets/Script/CombaSyatem/BulletObject.cs
Normal file
86
unity/Assets/Script/CombaSyatem/BulletObject.cs
Normal file
@@ -0,0 +1,86 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class BulletObject : MonoBehaviour
|
||||
{
|
||||
private bool initialied = false;
|
||||
|
||||
[SerializeField] private Vector2 startPos;
|
||||
private Vector2 midPos;
|
||||
private float percent = 0;
|
||||
private float percentSpeed = 0;
|
||||
[SerializeField] private float speed = 25;
|
||||
|
||||
|
||||
private Vector2 lastTargetPos;
|
||||
|
||||
|
||||
|
||||
// Update is called once per frame
|
||||
void FixedUpdate()
|
||||
{
|
||||
if (initialied )
|
||||
{
|
||||
percent += percentSpeed * Time.deltaTime;
|
||||
if (percent >= 1)
|
||||
{
|
||||
percent = 1;
|
||||
}
|
||||
transform.position = UnityExpandFunction.Bezier(percent, startPos, midPos, lastTargetPos);
|
||||
}
|
||||
if(transform.position==new Vector3(lastTargetPos.x, lastTargetPos.y,0))
|
||||
{
|
||||
Destroy(this.gameObject);
|
||||
}
|
||||
|
||||
}
|
||||
public void Init(GameObject parent)
|
||||
{
|
||||
GameObject player = GameObject.FindGameObjectWithTag("Player");
|
||||
if(player!=null)
|
||||
{
|
||||
lastTargetPos = player.transform.position;
|
||||
|
||||
startPos = parent.transform.position+new Vector3(Random.Range(0,2), Random.Range(0, 2),0);
|
||||
|
||||
midPos = GetMiddlePostion(parent.transform.position, lastTargetPos);
|
||||
|
||||
percentSpeed = speed / (lastTargetPos - startPos).magnitude;
|
||||
|
||||
transform.position = startPos;
|
||||
|
||||
percent = 0;
|
||||
initialied = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// ÖÐÐĵã
|
||||
/// </summary>
|
||||
/// <param name="a"></param>
|
||||
/// <param name="b"></param>
|
||||
/// <returns></returns>
|
||||
private Vector2 GetMiddlePostion(Vector2 a, Vector2 b)
|
||||
{
|
||||
Vector2 m = Vector2.Lerp(a,b,0.1f);
|
||||
Vector2 normal = Vector2.Perpendicular(a-b).normalized;
|
||||
|
||||
float rd = Random.Range(-2f,2f);
|
||||
float curveRatio = 15f;//Æ«ÒÆÖµ
|
||||
|
||||
return m + (a - b).normalized * curveRatio * rd * normal;
|
||||
}
|
||||
|
||||
private void OnTriggerEnter2D(Collider2D collision)
|
||||
{
|
||||
if(collision.CompareTag("Player"))
|
||||
{
|
||||
if (collision.gameObject.GetComponentInChildren<CombaSystem>()._animator.CheckAnimationTag("Roll"))
|
||||
return;
|
||||
Debug.Log("»÷ÖÐ");
|
||||
collision.gameObject.GetComponentInChildren<CombaSystem>().TakeDamage(20);
|
||||
}
|
||||
}
|
||||
}
|
||||
11
unity/Assets/Script/CombaSyatem/BulletObject.cs.meta
Normal file
11
unity/Assets/Script/CombaSyatem/BulletObject.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9f66d4a955da568499421df665e614ec
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
69
unity/Assets/Script/CombaSyatem/CombaSystem.cs
Normal file
69
unity/Assets/Script/CombaSyatem/CombaSystem.cs
Normal file
@@ -0,0 +1,69 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class CombaSystem : MonoBehaviour
|
||||
{
|
||||
public Animator _animator;
|
||||
public AudioSource _audio;
|
||||
public AudioClip _summerClip;
|
||||
|
||||
[Header("近战攻击")]
|
||||
[SerializeField] protected Vector2 attackSize = new Vector2();
|
||||
[SerializeField] protected Vector2 AttackAreaPos;
|
||||
[Header("判定偏移")]
|
||||
[SerializeField] protected float offsetX = 1f;
|
||||
[SerializeField] protected float offsetY = 1f;
|
||||
|
||||
[SerializeField,Header("检测层级")] protected List<LayerMask> layerMasks;
|
||||
|
||||
|
||||
public float maxHp = 1800;
|
||||
public float currentHp;
|
||||
[Header("攻击")]
|
||||
public float attack = 50;
|
||||
|
||||
public Action<float> OnHit;
|
||||
|
||||
protected bool isDie = false;
|
||||
protected virtual void Awake()
|
||||
{
|
||||
currentHp = maxHp;
|
||||
}
|
||||
public virtual void MelleeAttackAnimEvent()
|
||||
{
|
||||
Debug.Log("ATTACK");
|
||||
|
||||
AttackAreaPos = transform.position;
|
||||
|
||||
AttackAreaPos.x += offsetX;
|
||||
AttackAreaPos.y += offsetY;
|
||||
|
||||
offsetX = this.transform.parent.localScale.x < 0 ? Mathf.Abs(offsetX) : -Mathf.Abs(offsetX);
|
||||
}
|
||||
|
||||
protected void OnDrawGizmos()
|
||||
{
|
||||
Gizmos.color = Color.red;
|
||||
Gizmos.DrawWireCube(AttackAreaPos, attackSize);
|
||||
}
|
||||
|
||||
public bool GetIsDie()
|
||||
{
|
||||
return isDie;
|
||||
}
|
||||
|
||||
#region 受伤
|
||||
//收到攻击
|
||||
public virtual void TakeDamage(string hitName, float attack)
|
||||
{
|
||||
}
|
||||
public virtual void TakeDamage(float attack)
|
||||
{
|
||||
}
|
||||
public virtual void TakeDamage()
|
||||
{
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
11
unity/Assets/Script/CombaSyatem/CombaSystem.cs.meta
Normal file
11
unity/Assets/Script/CombaSyatem/CombaSystem.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 39dcd5b188009fa4a9664243cee7bec0
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
92
unity/Assets/Script/CombaSyatem/CombatAblilityBase.cs
Normal file
92
unity/Assets/Script/CombaSyatem/CombatAblilityBase.cs
Normal file
@@ -0,0 +1,92 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public enum AblityClass
|
||||
{
|
||||
MelleeAttack,
|
||||
YuanChenAttack
|
||||
}
|
||||
public abstract class CombatAblilityBase : ScriptableObject
|
||||
{
|
||||
[SerializeField, Header("技能名称")] protected string abilityName;
|
||||
[SerializeField, Header("技能ID")] protected int abilityID;
|
||||
[SerializeField, Header("技能CD")] protected float abilityCDTime;
|
||||
[SerializeField, Header("技能类型")] protected AblityClass abilityClass;
|
||||
[SerializeField, Header("技能音效")] protected AudioClip abilityVFX;
|
||||
|
||||
[SerializeField, Header("技能可用")] protected bool abilityIsDone;
|
||||
[SerializeField, Header("技能释放距离")] protected float abilityDistance;
|
||||
|
||||
[SerializeField, Header("技能个数")] protected int maxAbilityCount=0;
|
||||
protected int currentAbilityCount = 0;
|
||||
|
||||
[SerializeField, Header("技能释放偏移")] protected List<Vector2> abilityOffest;
|
||||
|
||||
|
||||
private Transform pollName;
|
||||
|
||||
protected BossAI ai;
|
||||
protected Animator _animator;
|
||||
public abstract void UpdateAblity(Transform target=null);
|
||||
|
||||
public void UseAblity(CombatAblilityBase ablility)
|
||||
{
|
||||
pollName = GameObject.Find("TimerRoot").transform;
|
||||
abilityIsDone = false;
|
||||
//开始计时
|
||||
string timerPath = "Perfab/Timer";
|
||||
GameObject timer = Resloader.Load<GameObject>(timerPath);//寻找预制体
|
||||
|
||||
GameObject go = Instantiate(timer, pollName);
|
||||
if(ablility.abilityClass==AblityClass.MelleeAttack)
|
||||
{
|
||||
go.GetComponent<Timer>().CreateTime(ablility.GetAbliltyCD(), () => ablility.abilityIsDone = true, false);
|
||||
}
|
||||
else if (ablility.abilityClass == AblityClass.YuanChenAttack)
|
||||
{
|
||||
go.GetComponent<Timer>().CreateTime(ablility.GetAbliltyCD(), () => { ablility.abilityIsDone = true;
|
||||
ablility.currentAbilityCount = maxAbilityCount;
|
||||
}, false);
|
||||
}
|
||||
}
|
||||
public void Init(BossAI boss,Animator ani)
|
||||
{
|
||||
ai = boss;
|
||||
_animator = ani;
|
||||
abilityIsDone = true;
|
||||
currentAbilityCount = maxAbilityCount;
|
||||
}
|
||||
public bool GetAbliltyIsDone()
|
||||
{
|
||||
return abilityIsDone;
|
||||
}
|
||||
public void SetAbliltyIsDone(bool isDone)
|
||||
{
|
||||
abilityIsDone = isDone;
|
||||
}
|
||||
public AblityClass GetAbliltyClass()
|
||||
{
|
||||
return abilityClass;
|
||||
}
|
||||
public string GetAbliltyName()
|
||||
{
|
||||
return abilityName;
|
||||
}
|
||||
public float GetAbliltyCD()
|
||||
{
|
||||
return abilityCDTime;
|
||||
}
|
||||
public float GetAbliltyDis()
|
||||
{
|
||||
return abilityDistance;
|
||||
}
|
||||
public List<Vector2> GetAbliltyOffest()
|
||||
{
|
||||
return abilityOffest;
|
||||
}
|
||||
public AudioClip GetAbliltyVFX()
|
||||
{
|
||||
return abilityVFX;
|
||||
}
|
||||
}
|
||||
11
unity/Assets/Script/CombaSyatem/CombatAblilityBase.cs.meta
Normal file
11
unity/Assets/Script/CombaSyatem/CombatAblilityBase.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a8490e9bf7913124ba5e447788cce308
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user