火老虎修改
This commit is contained in:
parent
3b3c5a66f1
commit
f7a42f94ab
@ -50,7 +50,7 @@ public class Attack : MonoBehaviour
|
|||||||
public bool flag = false;
|
public bool flag = false;
|
||||||
[HideInInspector] public float timer = 0;
|
[HideInInspector] public float timer = 0;
|
||||||
|
|
||||||
|
[Header("角色面朝方向")] public int dir=1;//1是右边,-1是左边
|
||||||
public async void Start()
|
public async void Start()
|
||||||
{
|
{
|
||||||
bulletData = new BulletData();
|
bulletData = new BulletData();
|
||||||
@ -82,17 +82,15 @@ public class Attack : MonoBehaviour
|
|||||||
// 获取碰撞体的尺寸
|
// 获取碰撞体的尺寸
|
||||||
Vector2 boxSize = attackColliderBox.size;
|
Vector2 boxSize = attackColliderBox.size;
|
||||||
|
|
||||||
// 只检测右边一半,修改尺寸
|
|
||||||
boxSize.x /= 2f;
|
|
||||||
|
|
||||||
// 获取碰撞体的中心位置
|
// 获取碰撞体的中心位置
|
||||||
Vector3 colliderCenter = attackColliderBox.transform.position;
|
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);
|
GetAllColliderInAttackRange(colliders);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -131,9 +129,9 @@ public class Attack : MonoBehaviour
|
|||||||
|
|
||||||
public void GetAllColliderInAttackRange(Collider2D[] colliders)
|
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)
|
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)
|
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);
|
animator.SetInteger("State", 1);
|
||||||
flag = true;
|
flag = true;
|
||||||
}
|
}
|
||||||
@ -350,16 +358,8 @@ public class Attack : MonoBehaviour
|
|||||||
// 更新矩形碰撞体的尺寸
|
// 更新矩形碰撞体的尺寸
|
||||||
attackColliderBox.size = boxSize;
|
attackColliderBox.size = boxSize;
|
||||||
characterClick.OrSizeX = boxSize.x / characterClick.StartSizeX; // * 2f 因为 radius 是半径,图片的尺寸通常是直径
|
characterClick.OrSizeX = boxSize.x / characterClick.StartSizeX; // * 2f 因为 radius 是半径,图片的尺寸通常是直径
|
||||||
characterClick.OrSizeY = boxSize.y * 2 / characterClick.StartSizeY;
|
characterClick.OrSizeY = boxSize.y / characterClick.StartSizeY;
|
||||||
float offSetX = (characterClick.StartSizeX - characterClick.OrSizeX) / 2;
|
|
||||||
if (role.AttackRange==3)
|
|
||||||
{
|
|
||||||
offSetX += 0.6f;
|
|
||||||
}
|
|
||||||
|
|
||||||
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 设置子弹的长度
|
// 根据 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);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user