コード例 #1
0
ファイル: ShellBase.cs プロジェクト: leecrest/battleio
    // 飞行结束
    void FlyEnd(GameObject target)
    {
        State    = EnShellState.InTarget;
        m_Target = target;
        if (m_Target == null)
        {
            // 飞行超时,落在地面上
            Drop2Ground();
        }
        else
        {
            switch (m_Target.tag)
            {
            case "wall":
                Drop2Wall();
                break;

            case "ground":
                Drop2Ground();
                break;

            case "hero":
                Drop2Hero();
                break;

            default:
                break;
            }
        }
        Invoke("OnTimerDestroy", Config.SHELL_DESTROY);
    }
コード例 #2
0
ファイル: ShellBase.cs プロジェクト: leecrest/battleio
    // 子弹发射
    public virtual void Shoot(float speed, float range, int damage, bool back)
    {
        State = EnShellState.Flying;
        // 子弹脱离武器
        transform.parent = GameMgr.It.ObjRoot;
        m_Dir            = transform.position - Owner.Owner.transform.position;
        m_Dir            = m_Dir.normalized;
        ShellConfig cfg = Config.ShellCfg[ID - 1];

        m_Speed    = cfg.speed + speed;
        m_Range    = cfg.range + range;
        m_BeginPos = transform.position;
        m_Damage   = damage;
        // 开始飞行,启动碰撞检测
        m_Check = true;
    }
コード例 #3
0
ファイル: ShellBase.cs プロジェクト: leecrest/battleio
 public virtual void OnDetach()
 {
     transform.parent = null;
     State            = EnShellState.Flying;
 }
コード例 #4
0
ファイル: ShellBase.cs プロジェクト: leecrest/battleio
 public virtual void OnAttach(WeaponBase weapon)
 {
     Owner            = weapon;
     transform.parent = weapon.transform;
     State            = EnShellState.InWeapon;
 }