Перемещение персонажа в редакторе и в билде
Разрабатываю клон Doodle-jump. Реализовал прыжок и подсчёт очков. Решил сделать билд на телефон и обнаружил, что персонаж в телефоне перемещается не так как в редакторе. В редакторе он всегда остается ниже определенного уровня (что мне и надо), а в телефоне персонаж ускакивает высоко вверх. Не могу понять с чем это связанно. Ссылка на весь код: https://github.com/Leo506/MoodleJump
GameController.cs:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameController : MonoBehaviour
{
[SerializeField] PlatformGenerator platformGenerator;
[SerializeField] MoodleSpawner moodleSpawner;
[SerializeField] JumpController jumpController;
[SerializeField] ScoreUI scoreUI;
[SerializeField] GameCanvas gameCanvas;
[SerializeField] GameObject moodle;
int score = 0;
bool gameOver = false;
private void Start()
{
platformGenerator.GenerateStartBlocks();
moodleSpawner.Spawn(platformGenerator.platforms[0].transform);
Moodle.MoodleDiedEvent += GameOver;
}
private void OnDestroy()
{
Moodle.MoodleDiedEvent -= GameOver;
}
private void Update()
{
if (gameOver)
return;
var addScore = jumpController.CheckJump();
if (addScore > 0)
{
MoveObjectsDown(addScore);
score += (int)(addScore * 10);
scoreUI.UpdateScore(score);
}
jumpController.Distance = platformGenerator.CheckDistanceToGenerate(jumpController.Distance);
}
private void MoveObjectsDown(float distance)
{
moodle.transform.Translate(0, -distance, 0, Space.World);
foreach (var item in platformGenerator.platforms)
item.transform.Translate(0, -distance, 0, Space.World);
}
private void GameOver()
{
gameOver = true;
foreach (var item in platformGenerator.platforms)
Destroy(item.gameObject);
gameCanvas.GameOver();
}
}
JumpController.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class JumpController : MonoBehaviour
{
[SerializeField] GameObject moodle;
[SerializeField] float line;
[SerializeField] Text moodlePos, diffText;
float lastYPos;
public float Distance { get; set; }
private void Start()
{
Distance = 0;
lastYPos = moodle.transform.position.y;
}
public float CheckJump()
{
var moodleYPos = moodle.transform.position.y;
moodlePos.text = moodle.transform.position.ToString();
var difference = moodleYPos - lastYPos;
diffText.text = difference.ToString();
if (moodleYPos > line && difference > 0)
{
Distance += difference;
lastYPos = moodleYPos;
return difference;
}
lastYPos = moodleYPos;
return 0;
}
}

