This commit is contained in:
JA
2026-06-27 03:35:50 +08:00
parent 0bcb488b13
commit 2ab982a4e0
1044 changed files with 66627 additions and 112414 deletions

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 0bce880d4f34ad44cad0c7b839c00b40
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 4c3f2f49079af354a9e6a8720d14f5c8
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,26 +0,0 @@
%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}

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 98a239d9069b5b64faf5841e97cce79a
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,12 +0,0 @@
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)
{
}
}

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 938875dffea6bb64195bcefab599ba64
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,25 +0,0 @@
%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}

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 1e98ec405a8f8bd47a5c3aefeb8add8f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,24 +0,0 @@
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);
}
}
}

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 39a345fbb2ba60549bc7be5a613d7fe3
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,24 +0,0 @@
%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}

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 6db587830d2a5ff4ea96be28bccf951d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,22 +0,0 @@
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;
}
}
}

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 731be78ab51c1cf4d8d0b91962d058a0
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,24 +0,0 @@
%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}

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 59208d2b3fbaa8e4b9c91c99092f106e
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,13 +0,0 @@
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)
{
}
}

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 0bea07483ceab4842b793a021aad4c51
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,24 +0,0 @@
%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}

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 733b0aea8b566e24681247a79093393a
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,12 +0,0 @@
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)
{
}
}

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 6676841996372f24788e8af0050c9e53
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,24 +0,0 @@
%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}

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: eae12eefbdbcc8540bf10c9d846d1683
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,12 +0,0 @@
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)
{
}
}

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 9e2bd46305452774887ab58c9ddeef07
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,24 +0,0 @@
%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}

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: ec38341ed27661a42992dce9719b0399
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,12 +0,0 @@
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)
{
}
}

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 81b457857b635f442bd5f6113faac597
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,86 +0,0 @@
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);
}
}
}

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 9f66d4a955da568499421df665e614ec
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,69 +0,0 @@
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
}

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 39dcd5b188009fa4a9664243cee7bec0
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,92 +0,0 @@
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;
}
}

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: a8490e9bf7913124ba5e447788cce308
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: