コード例 #1
0
    void TryPinning()
    {
        //Do a raycast to see what kind of object is being hit.
        PointerEventData pointerData = new PointerEventData(EventSystem.current);

        pointerData.position = Input.mousePosition;

        List <RaycastResult> raycastResults = new List <RaycastResult>();

        EventSystem.current.RaycastAll(pointerData, raycastResults);
        //print("raycastResults.Count: " + raycastResults.Count);

        foreach (var obj in raycastResults)
        {
            if ((CursorMode == DetectiveCursorMode.Idle && obj.gameObject.tag == "DWall_Pins") ||
                obj.gameObject.tag == "DWall_QuitButton")
            {
                return;
            }
        }

        if (CursorMode != DetectiveCursorMode.Pinning)
        {
            //print("Start");

            GameObject pinStringGo = Instantiate(pinStringPf, Input.mousePosition, Quaternion.identity, detectiveWallCanvasGroup.transform) as GameObject;
            activePinStringGrp = pinStringGo.GetComponent <PingString>();
            activePinStringGrp.BeginPlacement(this);
            CursorMode = DetectiveCursorMode.Pinning;
        }
        else if (CursorMode == DetectiveCursorMode.Pinning && activePinStringGrp != null)
        {
            //print("Finished");

            activePinStringGrp.FinishPlacement();
            activePinStringGrp = null;
            CursorMode         = DetectiveCursorMode.Idle;
        }
    }