Example #1
0
    public static void newHoldPoint(GameObject obj)
    {
        Vector2 originalVectorPosition = FieldContainer.GetFieldElementByGameObject(obj).Coordinate;
        Vector2 newVectorPosition      = FieldContainer.GetFieldElementByGameObject(obj).Coordinate;
        float   distance  = Vector2.Distance(FieldContainer.GetFieldElementByGameObject(obj).Coordinate, (Vector2)obj.transform.localPosition);
        bool    isChanged = false;

        foreach (FieldElement field in FieldContainer.GetCollection())
        {
            if (field.isFree)
            {
                float tempDistance = Vector2.Distance(field.Coordinate, (Vector2)obj.transform.localPosition);

                if (tempDistance <= distance)
                {
                    newVectorPosition = field.Coordinate;
                    isChanged         = true;
                }
            }
        }
        FieldContainer.SetNewCoordinates(obj, newVectorPosition);

        if (isChanged)
        {
            FieldContainer.GetFreeFieldElement().Coordinate = originalVectorPosition;
        }
    }