コード例 #1
0
 // события мыши
 private void UpdateInput()
 {
     ray = mainCamera.ScreenPointToRay(Input.mousePosition);
     // посылаем луч из камеры по направлению к курсору, маска по уровню Plane
     if (Physics.Raycast(ray, out hit, 500f, 1 << 8))
     {
         cursorPosition = hit.point;
     }
     // если нажата левая клавиша мыши
     if (Input.GetMouseButtonDown(0))
     {
         // посылаем луч из камеры по направлению к курсору, маска по уровню Backpack
         if (Physics.Raycast(ray, out hit, 500f, 1 << 9))
         {
             // проверяем интерфейс рюкзака
             backpack = hit.collider.GetComponent <IBackpack>();
             if (backpack != null)
             {
                 // показать UI рюкзака
                 backpack.SetActiveUI(true);
             }
             // посылаем луч из камеры по направлению к курсору
         }
         else if (Physics.Raycast(ray, out hit))
         {
             // проверяем интерфейс фигуры
             figure = hit.collider.GetComponent <IFigure>();
             if (figure != null)
             {
                 figure.StartMove();
             }
         }
     }
     // если держим фигуру и отпустили клавишу мыши
     if (Input.GetMouseButtonUp(0))
     {
         if (figure != null)
         {
             figure.EndMove();
         }
         // посылаем луч из камеры по направлению к курсору, маска по уровню Backpack
         if (Physics.Raycast(ray, out hit, 500f, 1 << 9))
         {
             // проверяем интерфейс рюкзака
             IBackpack backpack = hit.collider.GetComponent <IBackpack>();
             if (backpack != null)
             {
                 if (figure != null)
                 {
                     // кладем фигуру в рюкзак
                     backpack.PutFigure(figure);
                     // посылаем луч из камеры по направлению к курсору
                 }
                 else if (Physics.Raycast(ray, out hit, 500f))
                 {
                     // проверяем интерфейс фигуры
                     figure = hit.collider.GetComponent <IFigure>();
                     if (figure != null)
                     {
                         backpack.GetFigure(figure);
                     }
                 }
             }
         }
         if (backpack != null)
         {
             // скрыть UI рюкзака
             backpack.SetActiveUI(false);
         }
         backpack = null;
         figure   = null;
     }
 }