示例#1
0
    public void PlaceBuilding(BuildController build)
    {
        if (manager.resources > 0)
        {
            List <BuildController.BuildType> requiresToList = build.requires.ToList();
            //Debug.Log(requiresToList.ToString());
            foreach (BuildController presentBuild in manager.listBuild)
            {
                if (presentBuild.Active())
                {
                    requiresToList.Remove(presentBuild.type);
                }
                //Debug.Log(requiresToList.Count + " "+ presentBuild.type);
            }

            if (requiresToList.Count == 0)
            {
                Ray     ray = mainCamera.ScreenPointToRay(Input.mousePosition);
                Vector3 pos;
                if (Physics.Raycast(ray: ray, hitInfo: out RaycastHit hit, layerMask: LayerMask.GetMask("Default"),
                                    maxDistance: 1000))
                {
                    pos = hit.point;
                }
                else
                {
                    pos = Vector3.zero;
                }
                BuildController toBuild = Instantiate(build, pos, Quaternion.identity);
                state.ConstructState(toBuild);
            }
            else
            {
                //TODO Feedback build require
            }
        }