火老虎修改
This commit is contained in:
parent
3b3c5a66f1
commit
f7a42f94ab
@ -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("修改图片宽度");
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user