shaoxiadiablo/Assets/AGame/Scripts/Game/Skill/Bullet_arrow_spread.cs

75 lines
1.8 KiB
C#
Raw Normal View History

2025-05-18 01:04:31 +08:00
// ***********************************************************************
// Assembly : Game
// Author : Kimch
// Created : 2020-09-02
// Description :
// Last Modified By :
// Last Modified On :
// ***********************************************************************
// <copyright file= "Bullet_arrow_spread" company="Kimch"></copyright>
// <summary></summary>
// ***********************************************************************
namespace G
{
using UnityEngine;
/// <summary>
/// 扩散箭
/// </summary>
public class Bullet_arrow_spread : MonoBehaviour
{
public float bullet_speed;
public int spread_count;
public int spread_angle;
public Transform sub_arrow;
private Transform _sub1;
private Transform _sub2;
private EnemyDamage _wd;
private bool _createSub;
private void Awake()
{
_wd = GetComponent<EnemyDamage>();
}
private void OnEnable()
{
_createSub = false;
}
private void Update()
{
if (!_createSub && spread_count > 0)
{
_createSub = true;
for (int i = 0; i < spread_count; i++)
{
Vector3 eulerAngles = transform.eulerAngles;
var a = Quaternion.Euler(eulerAngles.x, eulerAngles.y + spread_angle * (i + 1), 0f);
_sub1 = Object.Instantiate(sub_arrow, transform.position, a);
_sub1.GetComponent<EnemyDamage>().PressDamage(_wd.damage);
Object.Destroy(_sub1.gameObject, 1f);
var b = Quaternion.Euler(eulerAngles.x, eulerAngles.y - spread_angle * (i + 1), 0f);
_sub2 = Object.Instantiate(sub_arrow, transform.position, b);
_sub2.GetComponent<EnemyDamage>().PressDamage(_wd.damage);
Object.Destroy(_sub2.gameObject, 1f);
}
}
Vector3 position = transform.position;
if (position.y > 0f)
{
transform.position = position + this.transform.forward * (bullet_speed * Time.deltaTime);
}
}
}
}