public class PlayerScript : MonoBehaviour { //Audio > //Звук столкновение со стеной во время прыжка public AudioClip landingWallSound; //Звук прыжка public AudioClip jumpSound; //Звук приземления public AudioClip landingSound; //Звук уничтожения бомбы игроком public AudioClip bombDestroySound; //Звук разварата на земле public AudioClip returnSound; //audio героя private AudioSource audioSorc; //audio шума волн private AudioSource audioBackgraund; //audio фоновой музыки private AudioSource audioMusic; //Audio < //Настройки героя > //Jump time public float jumpTime; //Возращает в назначеное меню уровней public string menuBack; //Скорость игрока во время прыжка public float speedMoveJump; //Процент от гравитации 0.0f - 1.0f.Применяеться как начальная гравитация при падении public float gravityDownScale; //Скорость прыжка public float speedJump; //Скорость бега public float speedMove; //Гравитая героя public float gravity; //Скорость с каторой разгоняеться герой public float acceleration; //Текущий уровень public string nameLevelOver; //Следующий уровень public string nameLevelWin; //Настройки героя < //Rigidbody героя private Rigidbody2D hero; //Transform героя private Transform heroT; //Скорость героя на наклоных поверхностях private float speedAngle; //True - если герой на земле, False - если игрок в воздухе private bool up = false; //True - если кнопка прыжка нажата, False - в противном случае private bool upButton = false; //Вектор скорости прыжка героя private Vector2 speedUpDownVector; //Направление движения. True - лева, False - права private bool left = false; //Вектор текущей скорости бега героя private Vector2 speedHero; //Вектор вращение спрайта героя в лева private Vector2 leftV; //Вектор вращение спрайта героя в права private Vector2 rightV; //Вектор скорости бега героя private Vector2 speedV; //Animator героя private Animator animator; //Увеличитель гравитации при спуске с наклоных поверхностей private float breakDown = 1.5f; //Пауза private bool pause = true; //Жизни героя private int life = 3; //Точка спавна героя private Vector2 firstPos; //Платформа спавна героя private Transform platform; //Спрайты жизней > private SpriteRenderer life1; private SpriteRenderer life2; private SpriteRenderer life3; //Спрайты жизней < //Кнопка начала игры private Button start; //Кнопка паузы private Button paus; //Canvas Меню паузы private Canvas menuPause; //Начала игры private bool firstGame = true; //Animator тарелки private Animator copter; //Sprite щупальца бросающего бомбы private SpriteRenderer shoot; //GameObject щупальца бросающего бомбы private GameObject shootObj; //Score > //Всплывающие очки public GameObject victoryText; //Очки в верху экрана private Score score; //Canvas меню проигрыша private Canvas lose; //Canvas меню выигрыша private Canvas victory; //Временый GameObject private GameObject instantObj; //Canvas настроек private Canvas SettingCanvas; //Slider громкости музыки private Slider sliderMusicVolume; //score < //Вектор ускорения предыдущего кадра private Vector2 oldVelocity = Vector2.zero; //Индикатор времени прыжка private float jumpIndicatorTime = 0.0f; //Jump time //Player height above the platform public float heightPlPl;
// Angular Scale speed private float angle;
//Delete for Android private float timeBack; //Delete for Android //Delete for Release private float timeScaleFPS = 0.5f; private float scaleFps; private Text fpsText; private int frame = 0; //Delete for Release // Use this for initialization void Start() { //Rigidbody героя hero = GetComponent<Rigidbody2D>(); //Delete for Release fpsText = GameObject.Find("FPS").GetComponent<Text>(); scaleFps = timeScaleFPS; //Delete for Release //Audio audioMusic = GameObject.Find("SaundObject").GetComponent<AudioSource>(); audioBackgraund = GameObject.Find("water").GetComponent<AudioSource>(); audioSorc = GetComponent<AudioSource>(); //Audio shootObj = GameObject.Find("Shoot"); shoot = shootObj.GetComponent<SpriteRenderer>(); copter = GameObject.Find("copter").GetComponent<Animator>(); //score score = GameObject.Find("Score").GetComponent<Score>(); lose = GameObject.Find("Lose_canvas").GetComponent<Canvas>(); lose.enabled = false; victory = GameObject.Find("Victory_canvas").GetComponent<Canvas>(); victory.enabled = false; //csore //Canvas настроек SettingCanvas = GameObject.Find("SettingsCanvas").GetComponent<Canvas>(); //Slider громкости музыки sliderMusicVolume = GameObject.Find("SliderMusic").GetComponent<Slider>(); //Установка Slidera в сохраненую позицию > if (PlayerPrefs.HasKey("VolumeMusic")) { sliderMusicVolume.value = PlayerPrefs.GetFloat("VolumeMusic"); audioBackgraund.volume = sliderMusicVolume.value; audioMusic.volume = sliderMusicVolume.value; } else { //Начальная громкость музыки и шума волн PlayerPrefs.SetFloat("VolumeMusic", 0.8f); sliderMusicVolume.value = PlayerPrefs.GetFloat("VolumeMusic"); audioBackgraund.volume = sliderMusicVolume.value; audioMusic.volume = sliderMusicVolume.value; } //Установка Slidera в сохраненую позицию < // Button start = GameObject.Find("start").GetComponent<Button>(); paus = GameObject.Find("Pause").GetComponent<Button>(); menuPause = GameObject.Find("MenuPause").GetComponent<Canvas>(); menuPause.enabled = false; //life life1 = GameObject.Find("life1").GetComponent<SpriteRenderer>(); life2 = GameObject.Find("life2").GetComponent<SpriteRenderer>(); life3 = GameObject.Find("life3").GetComponent<SpriteRenderer>(); // First Position firstPos = new Vector2(-6.63f, 2.0f); platform = GameObject.Find("platform2").GetComponent<Transform>(); //pause Time.timeScale = 0.0f; speedUpDownVector = new Vector2(0, 0); speedV = new Vector2(speedMove, 0); speedHero = speedV; heroT = GameObject.Find("heroSprite").GetComponent<Transform>(); leftV = new Vector2(0.0f, 180.0f); rightV = new Vector2(0.0f, 0.0f);
animator = GameObject.Find("heroSprite").GetComponent<Animator>(); // start Player heroT.eulerAngles = rightV; left = false; hero.velocity = speedV;
}
void FixedUpdate() { oldVelocity = hero.velocity; } // Update is called once per frame void Update() { //Delete for Release scaleFps -= Time.deltaTime; frame++; if (scaleFps <= 0.0f) { scaleFps = timeScaleFPS; fpsText.text = (frame * 2).ToString(); frame = 0; } //Delete for Release //Jump time if (jumpIndicatorTime > 0) { jumpIndicatorTime -= Time.deltaTime; upButton = true; } //Jump time // Gravity and Jump if (up) { if (upButton) { animator.SetInteger("jump", 0); speedUpDownVector.y = speedJump; if (left) { hero.velocity = -(speedHero - speedUpDownVector); } else { hero.velocity = (speedHero + speedUpDownVector); } }
yazZ3va, и кому скриншоты нужны? Информативности как для программиста в них 0 Если вы решили обратиться к нам за помощью, не становитесь в позицию неудачника. И не ведите себя как неудачник. Лучший способ получить быстрый и чуткий ответ, - спрашивать как победитель — спрашивать как человек умный, уверенный в себе и знающий, которому просто понадобилась помощь при решении одной конкретной проблемы. Как правильно задавать вопросы в технических форумах
По поводу советов, рекомендую как-то сортировать объявление полей класса (сначала публичные, потом приватные), тогда гораздо проще ориентироваться. Плюс можно еще группировать поля, а отдельные группы разделять пустой строкой (это, конечно, скорее дело вкуса, а не строгие правила, но ИМХО гораздо удобнее когда все так упорядочено). Например:
Код
// Эти три поля характеризуют месторасположение, допустим, игрока - position это его координаты, angle угол поворота его головы, а world - индекс астрального мира, в котором пребывает его сознание public Vector2 position; public float angle; public int world;
// Вот эти поля уже отнести к месторасположению можно с трудом, по этому отделяем их пустой строкой public int maxHealth, maxMana;
// Между приватными и публичными полями тоже пустая строка private int health, mana;
Вообще такие "пробельные" строки очень полезны для читаемости, не только в случае с полями. Еще совет - стараться минимально использовать SendMessage, потому что он гораздо медленней прямых вызовов (конечно, все зависит от задачи, иногда SendMessage гораздо разумней использовать. Как говорится, все хорошо в меру)
Удачи)
Сообщение отредактировал MysticPurple - Пятница, 12 Июня 2015, 22:25