Пример #1
0
        static void Main(string[] args)
        {
            Product product = new Product("Persik", 100, 100);

            Reflector.Build(product);
            Reflector.Constructs(product);
            Reflector.Interfaces(product);
            Reflector.Methods(product);
            Reflector.MethodsWithParam(product, "str");
            Reflector.RunMethod <Product>(product, "GetInfo");
            Reflector.Create <Product>(product);
        }
Пример #2
0
    private void Update()
    {
        if (!acceptInput)
        {
            return;
        }

#if UNITY_EDITOR
        if (selectedReflector)
        {
            Vector3 mouseWorldPos = mainCamera.ScreenToWorldPoint(Input.mousePosition);
            mouseWorldPos.z = selectedReflector.transform.position.z;
            selectedReflector.transform.position = mouseWorldPos;

            Ray mouseRay = mainCamera.ScreenPointToRay(Input.mousePosition);

            // Highlight of Grid Outline
            if (Physics.Raycast(mouseRay, out RaycastHit hit, Mathf.Abs(mainCamera.transform.position.z), reflectorPlacementBoxLayerMask))
            {
                Proto_Grid gridOutline = hit.collider.GetComponent <Proto_Grid>();
                if (gridOutline && !gridOutline.IsOccupied)
                {
                    if (highlightedGrid != null && highlightedGrid != gridOutline)
                    {
                        highlightedGrid.ShowGrid(false);
                    }

                    gridOutline.ShowGrid(true);
                    highlightedGrid = gridOutline;
                }
            }

            // Placement of Reflector
            if (Input.GetMouseButtonDown(0))
            {
                if (highlightedGrid)
                {
                    selectedReflector.transform.position = highlightedGrid.transform.position;
                    selectedReflector.Build();
                    selectedReflector.OccupyGridOutline(highlightedGrid);
                    highlightedGrid.OccupyReflector(selectedReflector);
                    highlightedGrid.ShowGrid(false);
                    selectedReflector = null;
                    highlightedGrid   = null;
                }
            }
        }
        else
        {
            if (Input.GetMouseButtonDown(0))
            {
                Ray mouseRay = mainCamera.ScreenPointToRay(Input.mousePosition);
                if (Physics.Raycast(mouseRay, out RaycastHit hit, Mathf.Abs(mainCamera.transform.position.z), reflectorLayerMask))
                {
                    Reflector reflector = hit.transform.GetComponentInParent <Reflector>();
                    if (reflector && reflector.Interactable)
                    {
                        reflector.OccupiedGridOutline.OccupyReflector(null);
                        reflector.OccupyGridOutline(null);
                        SelectReflector(reflector);
                    }
                }
            }
            else if (Input.GetMouseButtonDown(1))
            {
                Ray mouseRay = mainCamera.ScreenPointToRay(Input.mousePosition);
                if (Physics.Raycast(mouseRay, out RaycastHit hit, Mathf.Abs(mainCamera.transform.position.z), reflectorLayerMask))
                {
                    Reflector reflector = hit.transform.GetComponentInParent <Reflector>();
                    if (reflector && reflector.Interactable)
                    {
                        reflector.Rotate90();
                    }
                }
            }
        }
#elif UNITY_IOS || UNITY_ANDROID
#endif
    }