Example #1
0
    void OnCollisionStay(Collision col)
    {
        //各コントローラーのAction1ボタンが押されたら
        if (Input.GetButtonDown(setting.keyAction))
        {
            //衝突した机の種類を取得、tableKindがついていないオブジェクトだったら処理を中断
            table = col.gameObject.GetComponent(typeof(TableKind)) as TableKind;
            if (table == null)
            {
                return;
            }

            //衝突した机のinterfaceを取得する
            exe = col.gameObject.GetComponent(typeof(IExecutable)) as IExecutable;
            kit = col.gameObject.GetComponent(typeof(IKitchenWare)) as IKitchenWare;

            switch (table.type)
            {
            //素材テーブル
            case TableType.ElemTable:

                SetGet_exe();
                break;

            //こねるテーブル
            case TableType.KneadTable:

                knead = col.gameObject.GetComponent <KneadTable>();

                //入れる
                if (knead.elemLis.Count < 2 && ElemType() && knead.createDone == null)
                {
                    KneadSetGet_kit();
                    Destroy(haveObj);
                }
                //出す
                else if (knead.createDone != null && HaveChildObj() == false && knead.CheckProgress() == 1)
                {
                    KneadSetGet_kit();
                    knead.createDone = null;
                }

                break;

            //オーブン
            case TableType.BakingTable:

                bake = col.gameObject.GetComponent <BakingTable>();

                //入れる
                if (KneadType() && bake.elemLis.Count <= 0 && bake.createDone == null)
                {
                    OvenSetGet_kit();
                    Destroy(haveObj);
                }
                //出す
                else if (bake.createDone != null && HaveChildObj() == false && bake.CheckProgress() == 1)
                {
                    OvenSetGet_kit();
                    bake.createDone = null;
                }

                break;

            //コンベア
            case TableType.ExitTable:

                ExitTable exit = col.gameObject.GetComponent <ExitTable>();

                //入れる
                if (HaveChildObj() && BakingType(exit))
                {
                    exe.SetElement(haveObjMat);
                    haveObjMat = null;
                    Destroy(haveObj);
                }
                //出す
                else if (haveObjMat != null && BakingType(exit) == false)
                {
                    exit.missImg.SetActive(true);
                }

                break;
            }
        }
    }