private void MoveLeft()
    {
        if (!IsMovementPossible(1))
        {
            return;
        }

        currentPosition += 1;
        tweener          = playerPosition.gameObject.AddComponent <FitInTheHole_FigureTweener>();
        tweener.Tween(playerPosition.position, positionVariants[currentPosition].position, 1);
    }
示例#2
0
        private void MoveRight()
        {
            if (!IsMovementPossible(-1))
            {
                return;
            }

            currentPosition -= 1;
            tweener          = m_PlayerPosition.gameObject.AddComponent <FitInTheHole_FigureTweener>();
            tweener.Tween(m_PlayerPosition.position, m_PositionsVariants[currentPosition].position);
        }
示例#3
0
    //методы передвижения на костылях, как быстро сделать по другому не придумал
    //для определения вращения передаём дополнительно направление в какую сторону мы двигаемся
    private void MoveLeft()
    {
        Vector3 pos = m_PlayerPosition.transform.position;

        if (m_PlayerPosition.transform.position.x == -5f)
        {
            return;
        }

        //проверим находится ли слева кубик, если нет то просто подвинем влево иначе  вверх
        tweener = m_PlayerPosition.gameObject.AddComponent <FitInTheHole_FigureTweener>();
        if (pos.y > 0.5f && !m_ListCubesPosition.Contains(new Vector3(pos.x - 1f, pos.y,
                                                                      pos.z)) && m_ListCubesPosition.Contains(new Vector3(pos.x, pos.y - 1f,
                                                                                                                          pos.z)) && m_ListCubesPosition.Contains(new Vector3(pos.x - 1, pos.y - 1f,
                                                                                                                                                                              pos.z)))
        {
            tweener.Tween(pos, pos += new Vector3(-1f, 0f, 0f), left);
        }
        else if (pos.y > 0.5f && !m_ListCubesPosition.Contains(new Vector3(pos.x - 1f, pos.y,
                                                                           pos.z)) && m_ListCubesPosition.Contains(new Vector3(pos.x, pos.y - 1f,
                                                                                                                               pos.z)))
        {
            tweener.Tween(pos, pos += new Vector3(-1f, 0f, 0f), left);
            tweener.Tween(pos, pos += new Vector3(0f, -1f, 0f), left);
        }
        else if (pos.y > 0.5f && !m_ListCubesPosition.Contains(new Vector3(pos.x - 1f, pos.y,
                                                                           pos.z)) && !m_ListCubesPosition.Contains(new Vector3(pos.x, pos.y - 1f,
                                                                                                                                pos.z)))
        {
            tweener.Tween(pos, pos += new Vector3(0f, -1f, 0f), left);
        }
        else if (m_ListCubesPosition.Contains(new Vector3(pos.x - 1f, pos.y,
                                                          pos.z)) && m_ListCubesPosition.Contains(new Vector3(pos.x - 1f, pos.y + 1f, pos.z)))
        {
            tweener.Tween(pos, pos += new Vector3(0f, 1f, 0f), left);
        }
        else if (m_ListCubesPosition.Contains(new Vector3(pos.x - 1f, pos.y,
                                                          pos.z)) && !m_ListCubesPosition.Contains(new Vector3(pos.x - 1f, pos.y + 1f, pos.z)))
        {
            tweener.Tween(pos, pos += new Vector3(-1f, 0f, 0f), left);
            tweener.Tween(pos, pos += new Vector3(0f, 1f, 0f), left);
        }
        else
        {
            tweener.Tween(pos, pos += new Vector3(-1f, 0f, 0f), left);
        }
    }
示例#4
0
    private void MoveRight()
    {
        if (m_PlayerPosition.transform.position.x == 5f)
        {
            return;
        }
        Vector3 pos = m_PlayerPosition.transform.position;

        // currentPosition -= 1;
        tweener = m_PlayerPosition.gameObject.AddComponent <FitInTheHole_FigureTweener>();
        if (pos.y > 0.5f && !m_ListCubesPosition.Contains(new Vector3(pos.x + 1f, pos.y,
                                                                      pos.z)) && m_ListCubesPosition.Contains(new Vector3(pos.x, pos.y - 1f,
                                                                                                                          pos.z)) && m_ListCubesPosition.Contains(new Vector3(pos.x + 1f, pos.y - 1f,
                                                                                                                                                                              pos.z)))
        {
            tweener.Tween(pos, pos += new Vector3(+1f, 0f, 0f), right);
        }
        else if (pos.y > 0.5f && !m_ListCubesPosition.Contains(new Vector3(pos.x + 1f, pos.y,
                                                                           pos.z)) && m_ListCubesPosition.Contains(new Vector3(pos.x, pos.y - 1f,
                                                                                                                               pos.z)))
        {
            tweener.Tween(pos, pos += new Vector3(+1f, 0f, 0f), right);
            tweener.Tween(pos, pos += new Vector3(0f, -1f, 0f), right);
        }
        else if (pos.y > 0.5f && !m_ListCubesPosition.Contains(new Vector3(pos.x + 1f, pos.y,
                                                                           pos.z)) && !m_ListCubesPosition.Contains(new Vector3(pos.x, pos.y - 1f,
                                                                                                                                pos.z)))
        {
            tweener.Tween(pos, pos += new Vector3(0f, -1f, 0f), right);
        }
        else if (m_ListCubesPosition.Contains(new Vector3(pos.x + 1f, pos.y,
                                                          pos.z)) && m_ListCubesPosition.Contains(new Vector3(pos.x + 1f, pos.y + 1f, pos.z)))
        {
            tweener.Tween(pos, pos += new Vector3(0f, 1f, 0f), right);
        }
        else if (m_ListCubesPosition.Contains(new Vector3(pos.x + 1f, pos.y,
                                                          pos.z)) && !m_ListCubesPosition.Contains(new Vector3(pos.x + 1f, pos.y + 1f, pos.z)))
        {
            tweener.Tween(pos, pos += new Vector3(+1f, 0f, 0f), right);
            tweener.Tween(pos, pos += new Vector3(0f, 1f, 0f), right);
        }
        else
        {
            tweener.Tween(pos, pos += new Vector3(+1f, 0f, 0f), right);
        }
    }