Esempio n. 1
0
 private void GridUI_OnLeftEndDrag(Transform prevTransform, Transform enterTransform)
 {
     isDrag = false;
     DragItemUI.Hide();
     if (enterTransform == null)
     {
         ItemModel.DeleteItem(prevTransform.name);
     }
     else if (enterTransform.tag == "Grid")
     {
         if (enterTransform.childCount == 0)
         {
             Item item = ItemModel.GetItem(prevTransform.name);
             this.CreateNewItem(item, enterTransform);
             ItemModel.DeleteItem(prevTransform.name);
         }
         else
         {
             //删除原来的物品
             Destroy(enterTransform.GetChild(0).gameObject);
             //获取数据
             Item prevGirdItem  = ItemModel.GetItem(prevTransform.name);
             Item enterGirdItem = ItemModel.GetItem(enterTransform.name);
             //交换的两个物体
             this.CreateNewItem(prevGirdItem, enterTransform);
             this.CreateNewItem(enterGirdItem, prevTransform);
         }
     }
     else
     {
         Item item = ItemModel.GetItem(prevTransform.name);
         this.CreateNewItem(item, prevTransform);
     }
 }
Esempio n. 2
0
 private void GridUI_OnLeftEndDrag(Transform beginGrid, Transform endGrid)
 {
     if (endGrid == null)//丢弃物品
     {
         ItemModel.DeleteItem(beginGrid.name);
     }
     else if (endGrid.tag == "Grid")  //放入一个空的或有物体的格子中
     {
         if (endGrid.childCount == 0) //该格子为空
         {
             Item item = ItemModel.GetItem(beginGrid.name);
             this.PutIntoGrid(item, endGrid);
             //在完成物品转移以后移除数据
             ItemModel.DeleteItem(beginGrid.name);
         }
         else//目标格子中已有物品
         {
             Item beginItem = ItemModel.GetItem(beginGrid.name);
             Item endItem   = ItemModel.GetItem(endGrid.name);
             //把目标格子中的已有物品先删除掉
             Destroy(endGrid.GetChild(0).gameObject);
             this.PutIntoGrid(beginItem, endGrid);
             this.PutIntoGrid(endItem, beginGrid);
         }
     }
     else//放到背包外面
     {
         Item item = ItemModel.GetItem(beginGrid.name);
         this.PutIntoGrid(item, beginGrid);
     }
     IsDrag = false;
     DragItemUI.Hide();
 }
Esempio n. 3
0
    private void GridUI_OnLeftEndDrag(Transform oldTransform, Transform enterTransform)
    {
        isDrag = false;
        dragItemUI.Hide();
        if (enterTransform == null)
        {
            ItemModel.DeleteItem(oldTransform.name);
        }
        else if (enterTransform.tag == "Grid")
        {
            if (enterTransform.childCount == 0)
            {
                Item item = ItemModel.GetItem(oldTransform.name);
                CreatNewItem(item, enterTransform);
                ItemModel.DeleteItem(oldTransform.name);
            }
            else
            {
                Destroy(enterTransform.GetChild(0).gameObject);

                Item oldGridItem   = ItemModel.GetItem(oldTransform.name);
                Item enterGridItem = ItemModel.GetItem(enterTransform.name);

                this.CreatNewItem(oldGridItem, enterTransform);
                this.CreatNewItem(enterGridItem, oldTransform);
            }
        }
        else
        {
            Item item = ItemModel.GetItem(oldTransform.name);
            CreatNewItem(item, enterTransform);
        }
    }
Esempio n. 4
0
    private void GridUI_OnLeftEndDrag(Transform preTransform, Transform enterTransform)
    {
        isDrag = false;
        DragItemUI.Hide();

        if (enterTransform == null)   //扔东西
        {
            ItemModel.DeleteItem(preTransform.name);
            Debug.LogWarning("物品已扔");
        }
        else if (enterTransform.tag == "Grid")   //拖到格子里
        {
            if (enterTransform.childCount == 0)  //直接扔进去
            {
                Item item = ItemModel.GetItem(preTransform.name);
                this.CreateNewItem(item, enterTransform);
                ItemModel.DeleteItem(preTransform.name);
            }
            else  //交换
            {
                Destroy(enterTransform.GetChild(0).gameObject);
                Item preGridItem   = ItemModel.GetItem(preTransform.name);
                Item enterGridItem = ItemModel.GetItem(enterTransform.name);
                this.CreateNewItem(preGridItem, enterTransform);
                this.CreateNewItem(enterGridItem, preTransform);
            }
        }
        else   //拖到缝隙里就还原
        {
            Item item = ItemModel.GetItem(preTransform.name);
            this.CreateNewItem(item, preTransform);
        }
    }
Esempio n. 5
0
    //重新排列
    public void Rearrange()
    {
        List <Transform> nums = Panalui.FindItem();
        var items             = new List <Item>();//用于存储即将重新排序的Items

        for (int i = 0; i < nums.Count; i++)
        {
            items.Add(ItemModel.GetItem(nums[i].name)); //获得Item信息
            ItemModel.DeleteItem(nums[i].name);         //清空表
        }



        for (int i = 0; i < items.Count; i++)
        {
            Transform EmptyGrid = Panalui.GetGridname(i);//使用PanalUI脚本中的GetEmpty()方法获得空的Grid

            if (EmptyGrid == null)
            {
                Debug.Log("背包已经满了");
                return;
            }
            Item temp = items[i];
            this.CreateNewItem(temp, EmptyGrid);
        }
    }
        public ActionResult DeleteItem(int id)
        {
            if (checkLogin())
            {
                _itemModel.DeleteItem(id);

                return(RedirectToAction("index"));
            }
            return(RedirectToAction("Login", "Admin"));
        }
Esempio n. 7
0
    public void DeleteButtonClick(Image selectedImage)
    {
        if (selectedImage.IsActive() == false)
        {
            return;
        }

        selectedImage.gameObject.SetActive(false);

        Destroy(selectedImage.transform.parent.FindChild("Item(Clone)").gameObject);
        ItemModel.DeleteItem(selectedImage.transform.parent.name);

        selectedImage.transform.SetParent(null);
    }
Esempio n. 8
0
    //放弃把背包内物品拖拽到场景里了。。。还是试试点击吧
    //private void GridUI_OnLeftDrag(Transform DragTransform)
    //{
    //    isdrag = true;
    //    Vector2 position;
    //    float leftPos,rightPos,upPos,downPos;
    //    RectTransformUtility.ScreenPointToLocalPointInRectangle(GameObject.Find("Canvas").transform as RectTransform,
    //            Input.mousePosition, MainCamera, out position);
    //    rightPos = GridPanel.sizeDelta.x / 2;
    //    leftPos = -GridPanel.sizeDelta.x / 2;
    //    upPos = GridPanel.sizeDelta.y / 2;
    //    downPos = -GridPanel.sizeDelta.y / 2;
    //    Debug.Log(position);
    //    if (position.x < leftPos || position.x > rightPos || position.y > upPos || position.y < downPos)
    //    {
    //        isOut = true;
    //    }
    //    if (isOut == true)
    //    {
    //        GameObject.Find("Canvas").GetComponent<Canvas>().planeDistance = 0;
    //        isOut = false;

    //    }

    //}


    private void GridUI_OnLeftEndDrag(Transform GridTransStart, Transform GridTransEnd)             //当鼠标停止拖拽
    {
        if (GridTransStart)
        {
            isdrag = false;
        }
        dragItemUI.hidden();                        //隐藏被拖拽时出现的物品
        if (GridTransEnd == null)                   //拖到背包外面返回原位置
        {
            Items item = ItemModel.GetItem(GridTransStart.name);
            CreatNewItem(item, GridTransStart);
        }
        else
        if (GridTransEnd.tag == "Grid")                              //若拖到了另一个格子上
        {
            if (GridTransEnd.childCount == 0)                        //若为空格子
            {
                Items item = ItemModel.GetItem(GridTransStart.name); //取得开始拖拽的格子对应的物品
                ItemModel.DeleteItem(GridTransStart.name);           //删除开始拖拽的格子存储的物品信息
                CreatNewItem(item, GridTransEnd);                    //在拖拽结束的格子处创建对应物品并存储数据
            }
            else                                                     //交换
            {
                Destroy(GridTransEnd.GetChild(0).gameObject);
                //获取拖拽开始和结束时的物品信息
                Items ItemStart = ItemModel.GetItem(GridTransStart.name);
                Items ItemEnd   = ItemModel.GetItem(GridTransEnd.name);
                //得到未点燃的火把
                if ((ItemStart.ID == 2 && ItemEnd.ID == 1) || (ItemStart.ID == 1 && ItemEnd.ID == 2))
                {
                    CreatNewItem(PackageItemList[4], GridTransEnd);
                }

                else
                {
                    //在开始结束的格子中分别创建结束开始的物品
                    CreatNewItem(ItemStart, GridTransEnd);
                    CreatNewItem(ItemEnd, GridTransStart);
                }
            }
        }
        else                       //拖到其他地方,返回原位置
        {
            Items item = ItemModel.GetItem(GridTransStart.name);
            CreatNewItem(item, GridTransStart);
        }
    }
Esempio n. 9
0
    //鼠标结束拖动
    public void GridUI_onLeftEndDrag(Transform prevTransform, Transform enterTransform)
    {
        //判断是否在拖着东西
        if (isDrag == false)
        {
            return;
        }

        isDrag = false;
        DragITemUI.Hide();


        if (enterTransform == null)//扔掉东西
        {
            Debug.LogWarning("reng");

            ItemModel.DeleteItem(prevTransform.name);
        }

        else if (enterTransform.tag == "Grid")//拖到当前各自或其他格子
        {
            Debug.LogWarning("kongge");
            if (enterTransform.childCount == 0) //直接放入
            {
                Item item = ItemModel.GetItem(prevTransform.name);
                this.CreateNewItem(item, enterTransform);
                ItemModel.DeleteItem(prevTransform.name);
            }
            else //交换格子的物品
            {
                Item preItem   = ItemModel.GetItem(prevTransform.name);
                Item enterItem = ItemModel.GetItem(enterTransform.name);
                Destroy(enterTransform.GetChild(0).gameObject);

                this.CreateNewItem(preItem, enterTransform);

                this.CreateNewItem(enterItem, prevTransform);
            }
        }
        else//拖到其他地方
        {
            Item item = ItemModel.GetItem(prevTransform.name);
            this.CreateNewItem(item, prevTransform);
        }
    }
Esempio n. 10
0
 private void GridUI_OnLeftEndDrag(Transform preTransform, Transform gridTransform)
 {
     isDrag = false;
     dragItemUI.Hide();
     if (gridTransform == null)
     {
         //丢弃当前Item
         ItemModel.DeleteItem(preTransform.name);
         Debug.Log("丢弃");
     }
     else
     {
         //如果拖到另外一个或者当前的格子里面
         if (gridTransform.tag == "Grid")
         {
             //如果Grid下面没有子物体则直接扔进去
             if (gridTransform.childCount == 0)
             {
                 Item item = ItemModel.GetItem(preTransform.name);
                 this.CreateNewItem(item, gridTransform);
                 ItemModel.DeleteItem(preTransform.name);
             }
             //执行交换
             else
             {
                 Destroy(gridTransform.GetChild(0).gameObject);
                 //获取数据
                 Item prevGirdItem  = ItemModel.GetItem(preTransform.name);
                 Item enterGirdItem = ItemModel.GetItem(gridTransform.name);
                 //交换的两个物体
                 this.CreateNewItem(prevGirdItem, gridTransform);
                 this.CreateNewItem(enterGirdItem, preTransform);
             }
         }
         //如果拖到UI的其他地方则还原
         else
         {
             Item item = ItemModel.GetItem(preTransform.name);
             this.CreateNewItem(item, preTransform);
         }
     }
 }
Esempio n. 11
0
    private void GridUI_ExitDrag(Transform lasttransform, Transform transform)
    {
        Isdrag = false;
        dragitemui.HideText();

        if (transform == null)   //ui 外
        {
            ItemModel.DeleteItem(lasttransform.name);
            Debug.Log("物品已移除");
        }
        else if (transform.tag == "Grid")  //拖到格子里
        {
            if (transform.childCount == 0) //空格子
            {
                Item item = ItemModel.GetItem(lasttransform.name);
                if (item != null)
                {
                    ItemModel.DeleteItem(lasttransform.name);
                }
                CreatNewItem(item, transform);
            }
            else          //已存在交换
            {
                //删除原来的物品
                Destroy(transform.GetChild(0).gameObject);
                //获取数据
                Item prevGirdItem  = ItemModel.GetItem(lasttransform.name);
                Item enterGirdItem = ItemModel.GetItem(transform.name);
                //交换的两个物体
                this.CreatNewItem(prevGirdItem, transform);
                this.CreatNewItem(enterGirdItem, lasttransform);
            }
        }
        else      //格子外
        {
            // Item item = ItemModel.GetItem(lasttransform.name);

            // CreatNewItem(item, lasttransform);
        }
    }
Esempio n. 12
0
    public void GridUI_OnLeftEndDrag(Transform GridTransform, Transform GridEndTransform)
    {
        isDrag = false;
        DragItemUi.Hide();

        /*判断拖拽结束时指着的格子上有没有物体,如果有就进行交换,没有就把物品直接放上去*/


        if (GridEndTransform == null)                 //扔东西
        {
            ItemModel.DeleteItem(GridTransform.name); //删除之前格子的信息
            Debug.LogWarning("物品已扔");
        }


        else if (GridEndTransform.tag == "Grid")                   //如果拖到另一个格子或者当前格子里里
        {
            if (GridEndTransform.childCount == 0)                  //直接扔进去
            {
                Item item = ItemModel.GetItem(GridTransform.name); //获得之前的数据
                this.CreateNewItem(item, GridEndTransform);        //创建出新的Item
                ItemModel.DeleteItem(GridTransform.name);          //删除之前格子的信息
            }
            else//交换
            {
                Item item1 = ItemModel.GetItem(GridTransform.name);    //获得之前的数据
                Item item2 = ItemModel.GetItem(GridEndTransform.name); //获得之后的数据
                Destroy(GridEndTransform.GetChild(0).gameObject);      //将该位置的物体删除
                ItemModel.DeleteItem(GridTransform.name);              //删除之后格子的信息
                ItemModel.DeleteItem(GridTransform.name);              //删除之前格子的信息
                this.CreateNewItem(item1, GridEndTransform);           //创建出新的Item
                this.CreateNewItem(item2, GridTransform);              //创建出新的Item
            }
        }
        else//如果拖到UI其他地方
        {
            Item item = ItemModel.GetItem(GridTransform.name);//获得之前的数据
            this.CreateNewItem(item, GridTransform);//创建出新的Item
        }
    }
Esempio n. 13
0
    private void GridUIItem_onLeftEndDrag(Transform prevTransform, Transform enterTransform)
    {
        //ragItemUIScript
        isDrag = false;
        dragItemUIScript.IsShowDragItem(false);

        if (enterTransform == null)//拖到UI外面,扔了
        {
            ItemModel.DeleteItem(prevTransform.name);
            Debug.Log("扔东西");
        }
        //1.拖到另一地方,
        else if (enterTransform.tag == "Grid")
        {//是否子物体有值
            if (enterTransform.childCount == 0)
            {
                Item item = ItemModel.GetItem(prevTransform.name);
                createNewItem(item, enterTransform);
                ItemModel.DeleteItem(prevTransform.name);
            }
            else
            {
                Destroy(enterTransform.GetChild(0).gameObject);
                Item prevGridItem  = ItemModel.GetItem(prevTransform.name);
                Item enterGridItem = ItemModel.GetItem(enterTransform.name);

                this.createNewItem(prevGridItem, enterTransform);
                this.createNewItem(enterGridItem, prevTransform);
            }
        }
        else//拖到UI的其他 的地方
        {
            Item item = ItemModel.GetItem(prevTransform.name);
            createNewItem(item, prevTransform);
        }
    }
Esempio n. 14
0
    private void GridUI_OnLeftEndDrag(Transform prevTransform, Transform enterTransform)
    {
        isDrag = false;
        DragItemUI.Hide();

        if (enterTransform == null)//扔东西
        {
            ItemModel.DeleteItem(prevTransform.name);
            Debug.LogWarning("物品已扔");
        }
        else if (enterTransform.tag == "Grid")  //拖到另一个或者当前格子里
        {
            if (enterTransform.childCount == 0) //直接扔进去
            {
                Item item = ItemModel.GetItem(prevTransform.name);
                this.CreatNewItem(item, enterTransform);
                ItemModel.DeleteItem(prevTransform.name);
            }
            else //交换
            {
                //删除原来的物品
                Destroy(enterTransform.GetChild(0).gameObject);
                //获取数据
                Item prevGirdItem  = ItemModel.GetItem(prevTransform.name);
                Item enterGirdItem = ItemModel.GetItem(enterTransform.name);
                //交换的两个物体
                this.CreatNewItem(prevGirdItem, enterTransform);
                this.CreatNewItem(enterGirdItem, prevTransform);
            }
        }
        else//拖到UI的其他地方,让他还原
        {
            Item item = ItemModel.GetItem(prevTransform.name);
            this.CreatNewItem(item, prevTransform);
        }
    }
Esempio n. 15
0
    /// <summary>
    /// 结束拖拽,实现物品的交换或者恢复原位置
    /// </summary>
    /// <param name="prevTransform"></param>
    /// <param name="enterTransform"></param>
    void GridUI_OnLeftEndDrag(Transform prevTransform, Transform enterTransform)
    {
        isDrag = false;

        m_DragItemUI.Hide();

        if (enterTransform == null) //拖到其他位置,丢弃
        {
            ItemModel.DeleteItem(prevTransform.name);
            Debug.Log("物品已扔");
        }
        else if (enterTransform.tag == "Grid")      //和别的网格交换或者自己交换
        {
            if (prevTransform == enterTransform)    //和自己交换
            {
                Debug.Log("果然是同一位置!");

                Item item = ItemModel.GetItem(prevTransform.name);

                if (item != null)
                {
                    this.CreateNewItem(item, prevTransform);
                }
            }
            else                                    //和别的网格交换
            {
                if (enterTransform.childCount == 0) //如果拖拽到的位置为空
                {
                    Item item = ItemModel.GetItem(prevTransform.name);

                    //保证拖拽的网格内部有物体,如果没有,则不会创建新的物体
                    if (item == null)
                    {
                        return;
                    }

                    ItemModel.DeleteItem(prevTransform.name);
                    this.CreateNewItem(item, enterTransform);
                }
                else   //有物体
                {
                    Destroy(enterTransform.FindChild("Item(Clone)").gameObject);

                    Item curItem  = ItemModel.GetItem(prevTransform.name);
                    Item nextItem = ItemModel.GetItem(enterTransform.name);

                    this.CreateNewItem(curItem, enterTransform);
                    this.CreateNewItem(nextItem, prevTransform);
                }
            }
        }
        else //拖到别的位置,恢复到自身状态
        {
            Item item = ItemModel.GetItem(prevTransform.name);

            if (item != null)
            {
                this.CreateNewItem(item, prevTransform);
            }
        }
    }
Esempio n. 16
0
    private void RayCast(Vector3 screenPos)         //射线检测鼠标点击事件 !!不能为collider 2D!!否则检测不到
    {
        Ray        ray = FindEnableCamera(Camera.allCameras).ScreenPointToRay(screenPos);
        RaycastHit hit;

        //防止点击UI时射线穿透
        if (Physics.Raycast(ray, out hit) && !EventSystem.current.IsPointerOverGameObject())  //&&!EventSystem.current.IsPointerOverGameObject()
        {
            Debug.Log(hit.collider.gameObject.name);
            switch (hit.collider.gameObject.name)
            {
            case "背包":            //背包画布不可见

                canves.GetComponent <Canvas>().planeDistance = 60;
                GameManager._Instance.one  = 0;
                GameManager._Instance.four = 0;
                GameManager._Instance.five = 0;
                GameManager._Instance.six  = 0;
                GameManager._Instance.nine = 0;
                break;

            case "tuichu":
                if (isEnd == false)
                {
                    SetEnableCamera(cameras, 0);
                }
                break;

            case "HuoPen":
                if (GameManager._Instance.one == 1)
                {
                    ToTheScene.Play();
                    Instantiate(FireWood, hit.collider.transform.position, Quaternion.identity);
                    if (OnclickObj.transform.childCount != 0)
                    {
                        Destroy(OnclickObj.transform.GetChild(0).gameObject);
                    }
                    ItemModel.DeleteItem(GridName);
                    GameManager._Instance.one = 0;
                    GameObject.Find("HuoPen").GetComponent <BoxCollider>().enabled = false;
                }

                break;

            case "SuiBu":
                storeItemToPackage(2, hit.collider.gameObject);

                break;

            case "Stick":
                storeItemToPackage(1, hit.collider.gameObject);

                break;

            case "ranhuoba(Clone)":
                storeItemToPackage(5, hit.collider.gameObject);

                break;

            case "FireOnWall":                    //点燃墙上的火把
                if (GameManager._Instance.two == 2)
                {
                    ToTheScene.Play();
                    Fire.Play();

                    Destroy(hit.collider.gameObject);
                    Instantiate(FireWall, hit.collider.gameObject.transform.position, Quaternion.identity);
                    if (OnclickObj.transform.childCount != 0)
                    {
                        Destroy(OnclickObj.transform.GetChild(0).gameObject);
                    }
                    ItemModel.DeleteItem(GridName);
                    GameManager._Instance.two = 0;
                    GameObject.Find("Room1(Clone)").SetActive(false);

                    Instantiate(Room2, new Vector3(0.1f, 0, 0), Quaternion.identity);
                    GameObject.Find("buoluohou").GetComponent <BoxCollider>().enabled = false;

                    Fire.Play();
                }

                break;

            case "youdeng":
                AttainItem.Play();
                BackpackManager._instance.storeItem(9);    //点击一次后禁用自身collider
                GameObject.Find("youdeng").GetComponent <BoxCollider>().enabled = false;
                break;

            case "buoluo":
                Destroy(hit.collider.gameObject);
                GameObject.Find("buoluohou").GetComponent <BoxCollider>().enabled = true;
                break;

            case "buoluohou":
                SetEnableCamera(cameras, 2);
                break;


            case "guizi":
                Open.Play();
                SetEnableCamera(cameras, 1);
                break;

            case "地下室·装火药的罐子":
                AttainItem.Play();
                BackpackManager._instance.storeItem(8);
                GameObject.Find("地下室·装火药的罐子").GetComponent <BoxCollider>().enabled = false;
                break;

            case "box":

                if (GameManager._Instance.three == 3)
                {
                    PuzzleCanves.GetComponent <Canvas>().planeDistance = 100;
                }
                if (GameManager._Instance.seven == 7)
                {
                    Open.Play();
                    SetEnableCamera(cameras, 4);
                }
                break;

            case "sahuoyao":
                if (GameManager._Instance.firstEnd == false)
                {
                    if (GameManager._Instance.four == 4)
                    {
                        ToTheScene.Play();
                        Instantiate(Powder, hit.collider.transform.position, Quaternion.identity);
                        if (OnclickObj.transform.childCount != 0)
                        {
                            Destroy(OnclickObj.transform.GetChild(0).gameObject);
                        }
                        ItemModel.DeleteItem(GridName);
                        GameObject.Find("sahuoyao").GetComponent <BoxCollider>().enabled = false;
                        GameManager._Instance.four = 0;
                    }
                }

                break;

            case "HuoYao(Clone)":
                if (GameManager._Instance.five == 5)
                {
                    ToTheScene.Play();
                    Instantiate(PowderWick, hit.collider.transform.position, Quaternion.identity);
                    if (OnclickObj.transform.childCount != 0)
                    {
                        Destroy(OnclickObj.transform.GetChild(0).gameObject);
                    }
                    Destroy(hit.collider.gameObject);
                    ItemModel.DeleteItem(GridName);
                    GameManager._Instance.five = 0;
                }
                break;

            case "FireWall(Clone)":
                storeItemToPackage(7, hit.collider.gameObject);
                break;

            case "CaXinHuoYao(Clone)":
                if (GameManager._Instance.fivePoint == 11)
                {
                    DoorOut.Play();
                    GameObject.Find("rockdoor").SetActive(false);
                    Destroy(hit.collider.gameObject);         //销毁插芯的火药
                    if (OnclickObj.transform.childCount != 0) //从背包中销毁火把
                    {
                        Destroy(OnclickObj.transform.GetChild(0).gameObject);
                    }
                    ItemModel.DeleteItem(GridName);
                    GameManager._Instance.secondEnd = true;       //开启第二个结局 第一个结局不可见
                }
                break;

            case "gao":
                storeItemToPackage(10, hit.collider.gameObject);
                break;

            case "zhakaimen":
                if (GameManager._Instance.six == 6)
                {
                    Gao.Play();
                    GameObject.FindGameObjectWithTag("Door1").SetActive(false);
                    if (OnclickObj.transform.childCount != 0)        //从背包中销毁镐
                    {
                        Destroy(OnclickObj.transform.GetChild(0).gameObject);
                    }
                    ItemModel.DeleteItem(GridName);
                    Instantiate(BrokenDoor, hit.collider.transform.position, Quaternion.identity);
                }
                break;

            case "zhakaimen(Clone)":
                SetEnableCamera(cameras, 3);
                GameObject.Find("背包").SetActive(false);
                isEnd = true;
                break;

            case "打开的箱子":
                if (GameManager._Instance.eight == 8)
                {
                    Debug.Log("打开的箱子");
                    hit.collider.gameObject.SetActive(false);
                    nextBox.SetActive(true);
                }
                break;

            case "石块":
                storeItemToPackage(11, hit.collider.gameObject);
                break;

            case "洞":
                if (GameManager._Instance.secondEnd == false)
                {
                    if (GameManager._Instance.nine == 9)
                    {
                        GameObject.Find("zhakaimen").SetActive(false);
                        ToTheScene.Play();
                        DoorUp.Play();
                        Instantiate(Rock, hit.collider.transform.position, Quaternion.identity);
                        if (OnclickObj.transform.childCount != 0)
                        {
                            Destroy(OnclickObj.transform.GetChild(0).gameObject);
                        }
                        ItemModel.DeleteItem(GridName);
                        GameManager._Instance.nine = 0;
                        doorMove = true;
                        float x = hit.collider.transform.position.x;
                        float y = hit.collider.transform.position.y;
                        float z = hit.collider.transform.position.z;
                        Instantiate(GoOut, new Vector3(x + 6, y, z), Quaternion.identity);
                        GameManager._Instance.firstEnd = true;      //得到第一个结局  第二个结局不可实施
                    }
                }

                break;

            case "desk":
                SetEnableCamera(cameras, 5);
                break;

            case "out(Clone)":
                if (GameManager._Instance.ten == 10)
                {
                    SetEnableCamera(cameras, 6);
                    GameObject.Find("背包").SetActive(false);
                    isEnd = true;
                }

                break;
            }
        }
    }
Esempio n. 17
0
    private void RayCast(Vector3 screenPos)         //射线检测鼠标点击事件 !!不能为collider 2D!!否则检测不到
    {
        Ray        ray = FindEnableCamera(Camera.allCameras).ScreenPointToRay(screenPos);
        RaycastHit hit;

        if (Physics.Raycast(ray, out hit))
        {
            Debug.Log(hit.collider.gameObject.name);
            switch (hit.collider.gameObject.name)
            {
            case "背包":            //背包画布不可见
                canves.GetComponent <Canvas>().planeDistance = 100;
                GameManager._Instance.one  = 0;
                GameManager._Instance.four = 0;
                GameManager._Instance.five = 0;
                GameManager._Instance.six  = 0;
                GameManager._Instance.nine = 0;
                break;

            case "火盆":
                if (GameManager._Instance.one == 1)
                {
                    ToTheScene.Play();
                    Instantiate(FireWood, hit.collider.transform.position, Quaternion.identity);
                    if (OnclickObj.transform.childCount != 0)
                    {
                        Destroy(OnclickObj.transform.GetChild(0).gameObject);
                    }
                    ItemModel.DeleteItem(GridName);
                    GameManager._Instance.one = 0;
                }

                break;

            case "碎布":
                storeItemToPackage(2, hit.collider.gameObject);

                break;

            case "木棍":
                storeItemToPackage(1, hit.collider.gameObject);

                break;

            case "地下室火把(点燃)(Clone)":
                storeItemToPackage(5, hit.collider.gameObject);
                break;

            case "墙上火把":                    //点燃墙上的火把
                if (GameManager._Instance.two == 2)
                {
                    ToTheScene.Play();
                    Fire.Play();
                    Destroy(hit.collider.gameObject);
                    Instantiate(FireWall, hit.collider.gameObject.transform.position, Quaternion.identity);
                    if (OnclickObj.transform.childCount != 0)
                    {
                        Destroy(OnclickObj.transform.GetChild(0).gameObject);
                    }
                    ItemModel.DeleteItem(GridName);
                    GameManager._Instance.two = 0;
                    GameObject.Find("大房间1(Clone)").SetActive(false);

                    Instantiate(Room2, new Vector3(0.1f, 0, 0), Quaternion.identity);

                    Fire.Play();
                }

                break;

            case "油灯":
                storeItemToPackage(9, hit.collider.gameObject);    //点击一次后禁用自身collider
                GameObject.Find("油灯").GetComponent <BoxCollider>().enabled = false;
                break;

            case "剥落的一小块":
                SetEnableCamera(cameras, 2);
                break;

            case "柜子":
                Open.Play();
                SetEnableCamera(cameras, 1);
                break;

            case "地下室·装火药的罐子":
                AttainItem.Play();
                BackpackManager._instance.storeItem(8);
                GameObject.Find("地下室·装火药的罐子").GetComponent <BoxCollider>().enabled = false;
                break;

            case "地下室箱子":

                if (GameManager._Instance.three == 3)
                {
                    PuzzleCanves.GetComponent <Canvas>().planeDistance = 100;
                }
                if (GameManager._Instance.seven == 7)
                {
                    Open.Play();
                    SetEnableCamera(cameras, 4);
                }
                break;

            case "洒火药的位置":
                if (GameManager._Instance.firstEnd == false)
                {
                    if (GameManager._Instance.four == 4)
                    {
                        ToTheScene.Play();
                        Instantiate(Powder, hit.collider.transform.position, Quaternion.identity);
                        if (OnclickObj.transform.childCount != 0)
                        {
                            Destroy(OnclickObj.transform.GetChild(0).gameObject);
                        }
                        ItemModel.DeleteItem(GridName);
                        GameObject.Find("洒火药的位置").GetComponent <BoxCollider>().enabled = false;
                        GameManager._Instance.four = 0;
                    }
                }

                break;

            case "火药(Clone)":
                if (GameManager._Instance.five == 5)
                {
                    ToTheScene.Play();
                    Instantiate(PowderWick, hit.collider.transform.position, Quaternion.identity);
                    if (OnclickObj.transform.childCount != 0)
                    {
                        Destroy(OnclickObj.transform.GetChild(0).gameObject);
                    }
                    Destroy(hit.collider.gameObject);
                    ItemModel.DeleteItem(GridName);
                    GameManager._Instance.five = 0;
                }
                break;

            case "墙体剥落后图片":
                Destroy(GameObject.Find("墙体剥落后图片"));
                break;

            case "点燃的墙上火把(Clone)":
                storeItemToPackage(7, hit.collider.gameObject);
                break;

            case "插芯的火药(Clone)":
                if (GameManager._Instance.fivePoint == 11)
                {
                    DoorOut.Play();
                    GameObject.Find("石门").SetActive(false);
                    Destroy(hit.collider.gameObject);         //销毁插芯的火药
                    if (OnclickObj.transform.childCount != 0) //从背包中销毁火把
                    {
                        Destroy(OnclickObj.transform.GetChild(0).gameObject);
                    }
                    ItemModel.DeleteItem(GridName);
                    GameManager._Instance.secondEnd = true;       //开启第二个结局 第一个结局不可见
                }
                break;

            case "镐1":
                storeItemToPackage(10, hit.collider.gameObject);
                break;

            case "炸开一块的石门":
                if (GameManager._Instance.six == 6)
                {
                    Gao.Play();
                    GameObject.FindGameObjectWithTag("Door1").SetActive(false);
                    if (OnclickObj.transform.childCount != 0)        //从背包中销毁镐
                    {
                        Destroy(OnclickObj.transform.GetChild(0).gameObject);
                    }
                    ItemModel.DeleteItem(GridName);
                    Instantiate(BrokenDoor, hit.collider.transform.position, Quaternion.identity);
                }
                break;

            case "被炸开的石门(Clone)":
                SetEnableCamera(cameras, 3);
                GameObject.Find("背包").SetActive(false);
                isEnd = true;
                break;

            case "打开的箱子":
                if (GameManager._Instance.eight == 8)
                {
                    hit.collider.gameObject.SetActive(false);
                    nextBox.SetActive(true);
                }
                break;

            case "石块":
                storeItemToPackage(11, hit.collider.gameObject);
                break;

            case "洞":
                if (GameManager._Instance.secondEnd == false)
                {
                    if (GameManager._Instance.nine == 9)
                    {
                        GameObject.Find("炸开一块的石门").SetActive(false);
                        ToTheScene.Play();
                        DoorUp.Play();
                        Instantiate(Rock, hit.collider.transform.position, Quaternion.identity);
                        if (OnclickObj.transform.childCount != 0)
                        {
                            Destroy(OnclickObj.transform.GetChild(0).gameObject);
                        }
                        ItemModel.DeleteItem(GridName);
                        GameManager._Instance.nine = 0;
                        doorMove = true;
                        float x = hit.collider.transform.position.x;
                        float y = hit.collider.transform.position.y;
                        float z = hit.collider.transform.position.z;
                        Instantiate(GoOut, new Vector3(x + 3, y, z), Quaternion.identity);
                        GameManager._Instance.firstEnd = true;      //得到第一个结局  第二个结局不可实施
                    }
                }

                break;

            case "桌子":
                SetEnableCamera(cameras, 5);
                break;

            case "出口(Clone)":
                if (GameManager._Instance.ten == 10)
                {
                    SetEnableCamera(cameras, 6);
                    GameObject.Find("背包").SetActive(false);
                    isEnd = true;
                }

                break;
            }
        }
    }