using Adon.Game.BO;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace AdonGameKit
{
///
/// 2401001_2子弹(抛物线)
///
public class Bullet2401001_2 : MonoBehaviour
{
public BaseMonsterAdon m_BaseMonsterAdon;
private Vector3 bulletDir = Vector3.zero;
private int skillIndex = 0;
public float speed = 10;
private float distanceToTarget;
private Vector3 targetPos;
public void SetMonster(BaseMonsterAdon monster, Vector3 dir, int _skillIndex, Vector3 _targetPos)
{
m_BaseMonsterAdon = monster;
bulletDir = dir;
skillIndex = _skillIndex;
targetPos = _targetPos;
distanceToTarget = Vector3.Distance(this.transform.position, targetPos);
}
void FixedUpdate()
{
this.transform.LookAt(targetPos);
float angle = Mathf.Min(1, Vector3.Distance(this.transform.position, targetPos) / distanceToTarget) * 60;
this.transform.rotation = this.transform.rotation * Quaternion.Euler(Mathf.Clamp(-angle, -60, 60), 0, 0);
float currentDist = Vector3.Distance(this.transform.position, targetPos);
if (currentDist < 0.5f)
{
// 爆炸特效
GameObject effObj = Instantiate(m_BaseMonsterAdon.transform.Find("FBX/Effect_000/Bomb/Monster_Bomb2").gameObject, transform.position, Quaternion.identity);
effObj.SetActive(true);
Destroy(effObj, 2.0f);
Destroy(gameObject);
}
this.transform.Translate(Vector3.forward * Mathf.Min(speed * Time.deltaTime, currentDist));
}
///
/// 武器技能触发事件
///
///
void OnTriggerEnter(Collider collision)
{
if (collision.gameObject.layer == LayerMask.NameToLayer("Player"))//玩家层
{
Debug.Log("碰撞敌人");
// //Debug.Log("OnTriggerEnter:" + collision.gameObject.name);
BaseHero component = collision.gameObject.GetComponent();
//发送战斗信息,等待后台处理逻辑返回数据
BulletMessage.catSkillFun(m_BaseMonsterAdon.mData.UID, m_BaseMonsterAdon.mData.GetSKillNormal(skillIndex, 1),
false, (int)X2Battle.EBulletCastPoint.ECAST_POINT_DEFLUAT, component.mData.UID, false);
}
}
}
}