// OnTriggerEnter はコリジョン同士が接した瞬間しか呼ばれないので、
    // 攻撃判定の球が発生したときにオニが球の内側に完全に入っていると、
    // うまくひろえない.
    //void OnTriggerEnter(Collider other)
    void OnTriggerStay(Collider other)
    {
        do
        {
            if (!this.is_powered)
            {
                break;
            }

            if (other.tag != "OniGroup")
            {
                break;
            }

            OniGroupControl oni = other.GetComponent <OniGroupControl>();

            if (oni == null)
            {
                break;
            }

            //

            oni.OnAttackedFromPlayer();

            // 『攻撃できない中』タイマーをリセットする(すぐに攻撃可にする).
            this.player.resetAttackDisableTimer();

            // 攻撃ヒットエフェクトを再生する.
            this.player.playHitEffect(oni.transform.position);

            // 攻撃ヒット音を鳴らす.
            this.player.playHitSound();
        } while(false);
    }
Exemple #2
0
    //OnTriggerEnter只会在和碰撞对象发生接触的瞬间被调用
    //如果在产生攻击判断球时完全嵌入怪物的内侧,则会不容易检测
    //所以此处使用OnTriggerStay
    void OnTriggerStay(Collider other)
    {
        do
        {
            if (!this.is_powered)
            {
                break;
            }
            if (other.tag != "OniGroup")
            {
                break;
            }

            OniGroupControl oni = other.GetComponent <OniGroupControl>();

            if (oni == null)
            {
                break;
            }

            //怪物被击飞
            oni.OnAttackedFromPlayer();

            //重置不能攻击计时器
            this.player.ReseAttackDisableTimer();

            //播放攻击命中特效
            this.player.PlayHitEffect(oni.transform.position);

            //发出攻击命中音效
            this.player.PlayHitSound();
        } while (false);
    }
Exemple #3
0
    private void OnTriggerStay(Collider other)
    {
        if (this.is_attacking && other.tag == "OniGroup")
        {
            // OniGroupControl 触发被攻击效果
            OniGroupControl oni_group = other.GetComponent <OniGroupControl>();
            oni_group.OnAttackedFromPlayer();

            // TODO player 重置普攻,播放命中特效和音效
        }
    }