火老虎修改

This commit is contained in:
GL 2025-01-13 11:02:22 +08:00
parent 3b3c5a66f1
commit f7a42f94ab

View File

@ -50,7 +50,7 @@ public class Attack : MonoBehaviour
public bool flag = false;
[HideInInspector] public float timer = 0;
[Header("角色面朝方向")] public int dir=1;//1是右边-1是左边
public async void Start()
{
bulletData = new BulletData();
@ -82,17 +82,15 @@ public class Attack : MonoBehaviour
// 获取碰撞体的尺寸
Vector2 boxSize = attackColliderBox.size;
// 只检测右边一半,修改尺寸
boxSize.x /= 2f;
// 获取碰撞体的中心位置
Vector3 colliderCenter = attackColliderBox.transform.position;
// 计算右半部分的中心位置,确保中心点在矩形的右半部分
Vector3 rightCenter = new Vector3(colliderCenter.x + attackColliderBox.size.x / 4f, colliderCenter.y, colliderCenter.z);
// 使用OverlapBoxAll检测右半部分区域
Collider2D[] colliders = Physics2D.OverlapBoxAll(rightCenter, boxSize, 0f);
Collider2D[] colliders = Physics2D.OverlapBoxAll(colliderCenter, boxSize, 0f);
GetAllColliderInAttackRange(colliders);
}
@ -131,9 +129,9 @@ public class Attack : MonoBehaviour
public void GetAllColliderInAttackRange(Collider2D[] colliders)
{
foreach (Collider2D collider in colliders)
for (int i=0;i<colliders.Length;i++)
{
Role targetRole = collider.GetComponent<Role>();
Role targetRole = colliders[i].GetComponent<Role>();
if (targetRole && targetRole.camp != role.camp)
{
@ -148,6 +146,16 @@ public class Attack : MonoBehaviour
}
else if (bulletPrefab.GetComponent<Bullet>().myBulletType == BulletType.Spraying|| bulletPrefab.GetComponent<Bullet>().myBulletType==BulletType.XuLi)
{
if (i==0&&animator.transform.position.x > colliders[i].transform.position.x)
{
dir = -1;
}
else
{
dir = 1;
}
animator.transform.localScale = new Vector3(animator.transform.localScale.x*dir, animator.transform.localScale.y, animator.transform.localScale.z);
animator.SetInteger("State", 1);
flag = true;
}
@ -350,16 +358,8 @@ public class Attack : MonoBehaviour
// 更新矩形碰撞体的尺寸
attackColliderBox.size = boxSize;
characterClick.OrSizeX = boxSize.x / characterClick.StartSizeX; // * 2f 因为 radius 是半径,图片的尺寸通常是直径
characterClick.OrSizeY = boxSize.y * 2 / characterClick.StartSizeY;
float offSetX = (characterClick.StartSizeX - characterClick.OrSizeX) / 2;
if (role.AttackRange==3)
{
offSetX += 0.6f;
}
characterClick.OrSizeY = boxSize.y / characterClick.StartSizeY;
attackRangeSprite.transform.position = new Vector2(attackRangeSprite.transform.position.x - offSetX, attackRangeSprite.transform.position.y);
//characterClick.OrSizeY = 1;
//Debug.Log("修改图片宽度");
}
@ -522,7 +522,7 @@ public class Attack : MonoBehaviour
// 根据 bulletLength 设置子弹的长度
BulletGamobj.transform.localScale = new Vector3(BulletGamobj.transform.localScale.x + bulletLengthAdd, BulletGamobj.transform.localScale.y, BulletGamobj.transform.localScale.z);
BulletGamobj.transform.localScale = new Vector3(BulletGamobj.transform.localScale.x + bulletLengthAdd, BulletGamobj.transform.localScale.y, BulletGamobj.transform.localScale.z);
}