public override void DoAction(PlayerState ps, GameObject go)
 {
     if (Input.GetMouseButtonDown(0))
     {
         //RaycastHit2D rayHit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);
         RaycastHit2D rayHit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero, 10, LayerMask.GetMask("point"));
         if (rayHit.transform != null
             //&& rayHit.transform.gameObject.tag == "point"
             && go.GetComponent <Player>().MaterialCompare(rayHit.transform.gameObject.GetComponent <SpriteRenderer>().material))
         {
             PointCaptureControl.InitializePointCaptureControl();
             go.GetComponent <Player>().CreatePlayerObjectsByBeginCapture(rayHit.transform.gameObject);
             //StaticGameObject.endPoint = rayHit.transform.gameObject;
             //StaticGameObject.newLineGem = new GameObject("MyGameObject");
             //StaticGameObject.LRend = StaticGameObject.newLineGem.AddComponent<LineRenderer>();
             //StaticGameObject.pCol = StaticGameObject.newLineGem.AddComponent<PolygonCollider2D>();
             //StaticGameObject.pointPoligonColliderList = new List<Vector2>();
             //StaticGameObject.LRend.material = go.GetComponent<Player>().Material;
             //StaticGameObject.LRend.startWidth = 3;
             //StaticGameObject.LRend.positionCount = 2;
             //StaticGameObject.LRend.SetPosition(0, rayHit.transform.gameObject.transform.position);
             ps.State = new Capturing();
         }
     }
     else if (Input.GetMouseButton(1))
     {
         ps.State = new ChangePlayer();
         //ps.State = new Spacing();
     }
 }
        public override void DoAction(PlayerState ps, GameObject go)
        {
            if (Input.GetMouseButtonDown(0))
            {
                //RaycastHit2D rayHit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);
                RaycastHit2D rayHit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero, 10, LayerMask.GetMask("point"));
                if (rayHit.transform != null
                    //&& rayHit.transform.gameObject.tag == "point"
                    && go.GetComponent <Player>().MaterialCompare(rayHit.transform.gameObject.GetComponent <SpriteRenderer>().material) &&
                    go.GetComponent <Player>().NeighborhoodPoint(rayHit.transform.position) &&
                    go.GetComponent <Player>().LastCapturePointPos != rayHit.transform.position)
                {
                    StaticGameObject.LRend.SetPosition(StaticGameObject.LRend.positionCount - 1, rayHit.transform.gameObject.transform.position);
                    if (rayHit.transform.gameObject.transform.position == StaticGameObject.endPoint.transform.position)
                    {
                        PointCaptureControl.ScaleDetection(rayHit.transform.position);
                        //PointCaptureControl.MinMaxPoint(rayHit.transform.position);
                        //StaticGameObject.pointPoligonColliderList.Add(new Vector2(rayHit.transform.gameObject.transform.position.x, rayHit.transform.gameObject.transform.position.y));
                        //StaticGameObject.pCol.SetPath(0, StaticGameObject.pointPoligonColliderList.ToArray());
                        //StaticGameObject.pCol.OverlapPoint(rayHit.transform.gameObject.transform.position);
                        //PointCaptureControl PCC = new PointCaptureControl(StaticGameObject.pointPoligonColliderList);
                        PointCaptureControl PCC = new PointCaptureControl();
                        go.GetComponent <PaperList>().ChangeCapturePointColor(go.GetComponent <Player>().Material, PCC.DetectCapturePoints());
                        foreach (Point p in PCC.DetectCapturePoints())
                        {
                            Debug.Log(p.x + " " + p.y);
                        }

                        ps.State = new Waiting();
                    }
                    else if (go.GetComponent <Player>().NeighborhoodPoint(rayHit.transform.position))
                    {
                        StaticGameObject.LRend.positionCount += 1;
                        PointCaptureControl.ScaleDetection(rayHit.transform.position);
                        //PointCaptureControl.MinMaxPoint(rayHit.transform.position);
                        //StaticGameObject.pointPoligonColliderList.Add(new Vector2(rayHit.transform.gameObject.transform.position.x, rayHit.transform.gameObject.transform.position.y));
                        go.GetComponent <Player>().LastCapturePointPos = go.GetComponent <Player>().LastPointPos;
                        go.GetComponent <Player>().LastPointPos        = rayHit.transform.position;
                    }
                }
            }
            else if (Input.GetMouseButtonUp(1))
            {
                Destroy(StaticGameObject.newLineGem);
                ps.State = new Waiting();
            }
            else
            {
                Vector3 temp = Camera.main.ScreenToWorldPoint(Input.mousePosition);
                temp.z += 1.5f;
                StaticGameObject.LRend.SetPosition(StaticGameObject.LRend.positionCount - 1, temp);
            }
        }