Ejemplo n.º 1
0
 protected override void Init()
 {
     bulletEffect_Transform = M_Transform.Find("Armature/Weapon/BulletEffect").GetComponent <Transform>();
     bulletEffect_Clip      = Resources.Load <AudioClip>("Soures/Shotgun_Pump");
     bulletEffect_Shell     = Resources.Load <GameObject>("Prefabs/Gun/Shotgun_Shell");
     prefab_bullet          = Resources.Load <GameObject>("Prefabs/Gun/Shotgun_Bullet");
 }
Ejemplo n.º 2
0
    public override void CollisionEnter(Collision collision)
    {
        if (collision.gameObject.tag != "Arrow")
        {
            //箭头停止运动
            M_Rigidbody.Sleep();
            //如果碰到了障碍物
            if (collision.collider.gameObject.layer == LayerMask.NameToLayer("Env"))
            {//计算伤害
                collision.collider.GetComponent <BulletMarks>().Hp -= Demage;
                collision.collider.GetComponent <BulletMarks>().PlayAudio(hit);
                //移除刚体
                Destroy(M_Rigidbody);
                //移除碰撞器
                Destroy(m_BoxCollider);
                //设置父物体跟随
                M_Transform.SetParent(collision.gameObject.transform);

                StartCoroutine("TileAnimation", pivot_Transform);
            }
            if (collision.collider.gameObject.layer == LayerMask.NameToLayer("AI"))
            {//计算伤害
                collision.collider.GetComponentInParent <AI>().HP -= Demage;
                collision.collider.GetComponentInParent <AI>().PlayFleshEffect(hit);
                //移除刚体
                Destroy(M_Rigidbody);
                //移除碰撞器
                Destroy(m_BoxCollider);
                //设置父物体跟随
                M_Transform.SetParent(collision.gameObject.transform);

                StartCoroutine("TileAnimation", pivot_Transform);
            }
        }
    }
Ejemplo n.º 3
0
    protected override void Init()
    {
        bulletEffect_Transform = M_Transform.Find("Assault_Rifle/BulletEffect").GetComponent <Transform>();
        bulletParentTransform  = GameObject.Find("TempObject/BulletParent").GetComponent <Transform>();
        gunPointEffectParent   = GameObject.Find("TempObject/GunPointEffectParent").GetComponent <Transform>();

        prefab_bullet = Resources.Load <GameObject>("Prefabs/Gun/Bullet");
    }
Ejemplo n.º 4
0
 /// <summary>
 /// 进入到开镜状态
 /// </summary>
 public void EnterHoldPose(float time = 0.2f, int fov = 40)
 {
     //正对屏幕
     M_Transform.DOLocalMove(EndPos, time);
     M_Transform.DOLocalRotate(EndRot, time);
     //放大环境射线机
     M_EnvCamera.DOFieldOfView(fov, time);
 }
Ejemplo n.º 5
0
 /// <summary>
 /// 退出到开镜射击状态
 /// </summary>
 public void ExitHoldPose(float time = 0.2f, int fov = 60)
 {
     //摆回正常状态
     M_Transform.DOLocalMove(StartPos, time);
     M_Transform.DOLocalRotate(StartRot, time);
     //环境摄像机缩小
     M_EnvCamera.DOFieldOfView(fov, time);
 }
Ejemplo n.º 6
0
 protected override void InitOther()
 {
     Damage        = 0;
     m_BoxCollider = gameObject.GetComponent <BoxCollider>();
     if (m_BoxCollider == null)
     {
         m_BoxCollider = gameObject.AddComponent <BoxCollider>();
     }
     m_Pivot = M_Transform.Find("Pivot").GetComponent <Transform>();
 }
Ejemplo n.º 7
0
    protected override void Collision(Collision coll)
    {
        M_Rigidbody.Sleep();
        if (coll.gameObject.layer == LayerMask.NameToLayer("Envionment"))
        {
            GameObject.Destroy(m_BoxCollider);
            GameObject.Destroy(M_Rigidbody);
            BulletMark tempBulletMark = coll.collider.GetComponent <BulletMark>();
            if (tempBulletMark != null)
            {
                tempBulletMark.HP -= Damage;
            }
            StartCoroutine("AnimationPlay", m_Pivot);
            M_Transform.SetParent(coll.gameObject.transform);
        }
        else if (coll.gameObject.layer == LayerMask.NameToLayer("AI"))
        {
            GameObject.Destroy(m_BoxCollider);
            GameObject.Destroy(M_Rigidbody);
            AI tempAI = coll.collider.GetComponentInParent <AI>();
            if (tempAI != null)
            {
                // 头部伤害加倍
                if (coll.collider.gameObject.name == "Head")
                {
                    tempAI.HeadGetHit(Damage);
                }
                else
                {
                    tempAI.NormalHit(Damage);
                }

                // 播放血液特效
                tempAI.PlayBloodEffect(aiEffectHit);
            }
            StartCoroutine("AnimationPlay", m_Pivot);
            M_Transform.SetParent(coll.gameObject.transform);
        }
    }
Ejemplo n.º 8
0
    /// <summary>
    /// 碰撞事件.
    /// </summary>
    protected override void CollisionEnter(Collision other)
    {
        GameObject.Destroy(M_Rigidbody);
        GameObject.Destroy(m_BoxCollider);

        BulletMark bulletMark = other.gameObject.GetComponent <BulletMark>();
        AIBase     ai         = other.gameObject.GetComponentInParent <AIBase>();

        // 攻击环境物体.
        if (bulletMark != null)
        {
            bulletMark.Hp -= Damage;
            bulletMark.PlayHitAudio(hit);
        }

        // 攻击AI角色.
        else if (ai != null)
        {
            // 头部伤害加倍.
            if (other.gameObject.name == "Head")
            {
                ai.Life -= 2 * Damage;
                ai.HitHeadState();
            }
            else
            {
                ai.Life -= Damage;
                ai.HitNormalState();
            }

            ai.PlayEffect(hit);
        }

        // 通用效果展现.
        M_Transform.SetParent(other.gameObject.GetComponent <Transform>());
        StartCoroutine("TailAnimation", m_PivotTransform);
    }
Ejemplo n.º 9
0
 protected override void FindGunPoint()
 {
     GunPoint = M_Transform.Find(PathDefine.gunTransName + "/" + PathDefine.rifleGunPointTransName).transform;
 }
Ejemplo n.º 10
0
 //子类实现父类的定义的初始化枪口位置的抽象方法
 protected override void FindGunPointTransform()
 {
     FireEffect_Transform = M_Transform.Find("Assault_Rifle/FireEffect").GetComponent <Transform>();
 }
Ejemplo n.º 11
0
 protected override void InitShootPos()
 {
     ShootPos = M_Transform.Find("Hunting_Rifle/EffectPos_A").GetComponent <Transform>();
 }
Ejemplo n.º 12
0
 protected override void InitShellPos()
 {
     // 位置属性加载
     ShellPos = M_Transform.Find("Assault_Rifle/EffectPos_B").GetComponent <Transform>();
 }
Ejemplo n.º 13
0
 protected override void InitHoldPostPos()
 {
     FireEffect_Transform = M_Transform.Find("Armature/Weapon/FireEffect").GetComponent <Transform>();
 }
Ejemplo n.º 14
0
 protected override void InitShellPos()
 {
     ShellPos = M_Transform.Find("Armature/Weapon/EffectPos_B").GetComponent <Transform>();
 }
Ejemplo n.º 15
0
 public override void Init()
 {
     m_BoxCollider   = gameObject.GetComponent <BoxCollider>();
     pivot_Transform = M_Transform.Find("Pivot").GetComponent <Transform>();
 }
Ejemplo n.º 16
0
 /// <summary>
 ///  开镜状态.
 /// </summary>
 public virtual void HoldState(float time = 0.2f, int FOV = 45)
 {
     M_Transform.DOLocalMove(HoldPos, time);
     M_Transform.localRotation = Quaternion.Euler(HoldRotate);
     Env_Camera.DOFieldOfView(FOV, time);
 }
Ejemplo n.º 17
0
 /// <summary>
 ///  普通状态
 /// </summary>
 public virtual void NormalState(float time = 0.2f, int FOV = 60)
 {
     M_Transform.DOLocalMove(NormalPos, time);
     M_Transform.localRotation = Quaternion.Euler(NormalRotate);
     Env_Camera.DOFieldOfView(FOV, time);
 }
Ejemplo n.º 18
0
 protected override void InitShootPos()
 {
     ShootPos = M_Transform.Find("Armature/Arm_L/Forearm_L/Wrist_L/Weapon/EffectPos_A").GetComponent <Transform>();
 }
Ejemplo n.º 19
0
    private Transform m_PivotTransform;         // 中心点用于尾部动画.

    /// <summary>
    /// 查找加载初始化.
    /// </summary>
    protected override void FindAndLoadInit()
    {
        m_BoxCollider = gameObject.GetComponent <BoxCollider>();

        m_PivotTransform = M_Transform.Find("Pivot");
    }
Ejemplo n.º 20
0
 protected override void FindGunPointTransform()
 {
     FireEffect_Transform = M_Transform.Find("Armature/Weapon/FireEffect").GetComponent <Transform>();
 }
Ejemplo n.º 21
0
 protected override void FindGunPoint()
 {
     GunPoint = M_Transform.Find(PathDefine.gunTransName + "/" + PathDefine.sniperGunPointTransName);
 }