void CheckInputForAdd()
 {
     if (Input.GetMouseButton(0))
     {
         if (EventSystem.current.IsPointerOverGameObject())
         {
             return;
         }
         RaycastHit hit;
         Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
         if (Physics.Raycast(ray, out hit))
         {
             if (hit.collider.tag == "BuildingBase")
             {
                 BuildingBaseBehaviour buildBase = hit.collider.GetComponent <BuildingBaseBehaviour>();
                 if (buildBase.IsAvailable())
                 {
                     GameObject go = Instantiate(placeBuildings[m_curBuildingIndex], buildBase.transform.position, placeBuildings[m_curBuildingIndex].transform.rotation) as GameObject;
                     BuildingDefaultBehaviour building = go.GetComponent <BuildingDefaultBehaviour>();
                     if (building.CheckForBuild(buildBase.GetPosition(0), buildBase.GetPosition(1)) && m_player.PayForBuilding(building.GetCost))
                     {
                         building.TakeBuildingBase(buildBase.GetPosition(0), buildBase.GetPosition(1));
                     }
                     else
                     {
                         Destroy(go);
                     }
                 }
             }
         }
     }
 }
 // Use this for initialization
 void Start()
 {
     m_curBuildingIndex    = 0;
     m_curOperationState   = OperationState.None;
     m_curSelectedBuilding = null;
     m_buildField          = GetComponent <GameFieldInitialization>();
     trainMenu             = trainingMenu;
 }
 void OnCollisionEnter(Collision col)
 {
     if (col.collider.tag == "Building")
     {
         BuildingDefaultBehaviour build = col.collider.transform.GetComponentInParent <BuildingDefaultBehaviour>();
         if (build)
         {
             build.Damage(damage);
         }
     }
     Death();
 }
 void CheckInputForNone()
 {
     if (Input.GetMouseButton(0))
     {
         if (EventSystem.current.IsPointerOverGameObject())
         {
             return;
         }
         RaycastHit hit;
         Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
         if (Physics.Raycast(ray, out hit))
         {
             if (hit.collider.tag == "Building")
             {
                 BuildingDefaultBehaviour build = hit.collider.GetComponent <BuildingDefaultBehaviour>();
                 if (build)
                 {
                     if (m_curSelectedBuilding != null)
                     {
                         m_curSelectedBuilding.Select(false);
                     }
                     m_curSelectedBuilding = build;
                     build.Select(true);
                 }
             }
             else
             {
                 if (m_curSelectedBuilding != null)
                 {
                     m_curSelectedBuilding.Select(false);
                     m_curSelectedBuilding = null;
                 }
             }
         }
     }
 }
 void CheckInputForDelete()
 {
     if (Input.GetMouseButton(0))
     {
         if (EventSystem.current.IsPointerOverGameObject())
         {
             return;
         }
         Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
         RaycastHit hit;
         if (Physics.Raycast(ray, out hit))
         {
             if (hit.collider.tag == "Building")
             {
                 BuildingDefaultBehaviour building = hit.collider.GetComponent <BuildingDefaultBehaviour>();
                 if (!building)
                 {
                     building = hit.collider.GetComponentInParent <BuildingDefaultBehaviour>();
                 }
                 building.Sell();
             }
         }
     }
 }