public void StartPlayerMovement(float length) { currentGameState = EGameState.Movement; StickHeroPlatform nextPlatform = m_Platforms[counter + 1]; // находим min длину стика float targetLength = nextPlatform.transform.position.x - m_Stick.transform.position.x; float platformSize = nextPlatform.GetPlatformSize(); float min = targetLength - platformSize * 0.5f; min -= m_Player.transform.localScale.x * 0.9f; // находим мах длину стика float max = targetLength + platformSize * 0.5f; //при успехе переходим в центр следующей платформы if (length < min || length > max) { // будем падать float targetPosition = m_Stick.transform.position.x + length + m_Player.transform.localScale.x; m_Player.StartMovement(targetPosition, true); } else { float targetPosition = nextPlatform.transform.position.x; m_Player.StartMovement(targetPosition, false); SpawnNext(); } }
public void StartPlayerMovement(float length) { currentGameState = EGameState.Movement; StickHeroPlatform nextPlatform = m_Platforms[counter + 1]; //находим минимальную длину стика для успешного перехода float targetLength = nextPlatform.transform.position.x - m_Stick.transform.position.x; float platformSize = nextPlatform.GetPlatformSize(); float min = targetLength - platformSize * 0.5f; min -= m_Player.transform.localScale.x; //находим максимальную длину стика float max = targetLength + platformSize * 0.5f; //при успехе игрок переходит в центр платформы, иначе падаем if (length > min && length < max) { m_Player.StartMovement( nextPlatform.transform.position.x, false); } else { float targetPos = m_Stick.transform.position.x + length + m_Player.transform.localScale.x; m_Player.StartMovement(targetPos, true); } }
public void StartPlayerMovement(float lenght) { currentGameState = EGameState.Movement; StickHeroPlatform nextPlatform = m_Platforms[counter + 1]; //находим минимальную длину стика для успешного перехода float targetLenght = nextPlatform.transform.position.x - m_Stick.transform.position.x; float platformSize = nextPlatform.GetPlatformSize(); float min = targetLenght - platformSize * 0.5f; min -= m_Player.transform.localScale.x * 0.9f; //находим максимальную длину стика для успешного перехода float max = targetLenght + platformSize * 0.5f; //при успехе переходим в центр платформы, иначе падаем if (lenght < min || lenght > max) { float targetPosition = m_Stick.transform.position.x + lenght + m_Player.transform.localScale.x; m_Player.StartMovement(targetPosition, true); } else { float targetPosition = nextPlatform.transform.position.x; m_Player.StartMovement(targetPosition, false); GenerateBlock(); ShowScore(); } }
public void GeneratePlatform() { stickHeroPlatform = Instantiate(m_Platform); float value = Random.Range(0.5f, 1.5f); stickHeroPlatform.transform.position = new Vector3( m_Platforms[counter].transform.position.x + value, m_Platforms[counter].transform.position.y); float valueX = Random.Range(0.2f, 0.7f); stickHeroPlatform.transform.localScale = new Vector3(x: valueX, y: 1.0f, z: 1.0f); m_Platforms.Add(stickHeroPlatform); }