75 lines
1.8 KiB
C#
75 lines
1.8 KiB
C#
// ***********************************************************************
|
|
// 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);
|
|
}
|
|
}
|
|
}
|
|
} |