Понедельник, 11 Ноября 2024, 12:21

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Помогите найти ошибку в скрипте управления персонажем (JS)
poopkinДата: Вторник, 17 Ноября 2015, 10:59 | Сообщение # 1
уже был
Сейчас нет на сайте
Привет!
Есть скрипт управления персонажем для мобильных платформ.
Проблема заключается в следующем: через 10-15 секунд после запуска приложения перестают реагировать на прикосновения Pointer Up/Down, при этом остальные UI элементы на сцене работают. Подозреваю, что накосячил с velocity.x, но что-то как-то не могу понять, где именно..гляжу замыленным взором и не вижу..

Код
#pragma strict

var jumpSound: AudioClip;
var walkSpeed: float = 30.0;

var pressedLeftButton: boolean = false;
var pressedRightButton: boolean = false;
var pressedJumpButton: boolean = false;

private var jumpCounter:float = 0.0;
private var jumpHeight:float = 15.0;
private var hit: RaycastHit;

function FixedUpdate () {
        jumpCounter += Time.deltaTime;
        if (pressedLeftButton == true || pressedRightButton == true) {
        
                if (pressedLeftButton == true) {
                        if(GetComponent.<Rigidbody>().velocity.x > 0){
                    GetComponent.<Rigidbody>().velocity.x = 0;
                        }
                        if(GetComponent.<Rigidbody>().velocity.x > -walkSpeed){
                    GetComponent.<Rigidbody>().velocity.x -= 48*Time.deltaTime;
                        }
                }
        
                if (pressedRightButton == true) {
                        if(GetComponent.<Rigidbody>().velocity.x < 0){
                    GetComponent.<Rigidbody>().velocity.x = 0;
                        }
                        if(GetComponent.<Rigidbody>().velocity.x < walkSpeed){
                        GetComponent.<Rigidbody>().velocity.x += 48*Time.deltaTime;
                        }
                }
        } else {
        GetComponent.<Rigidbody>().velocity.x = 0.0;
        }
        if (pressedJumpButton == true) {
                if (Physics.Raycast (transform.position - Vector3(0,0.25,0), Vector3(0,-1,0), hit)) {
                        if(hit.distance < 1 && hit.transform.tag != "spikes" && hit.transform.tag != "enemy"){
                    GetComponent.<Rigidbody>().velocity.y = jumpHeight;
                    if(jumpCounter > 0.25){
                    GetComponent.<AudioSource>().PlayOneShot(jumpSound);
                    jumpCounter = 0.0;
                    }
                        }
                }
        }
}
function LeftButtonPress() {
        pressedLeftButton = true;
}
function LeftButtonNoPress() {
        pressedLeftButton = false;
        GetComponent.<Rigidbody>().velocity.x = 0.0;
}
function RightButtonPress() {
        pressedRightButton = true;
}
function RightButtonNoPress() {
        pressedRightButton = false;
        GetComponent.<Rigidbody>().velocity.x = 0.0;
}
function JumpButtonPress() {
        pressedJumpButton = true;
}
function JumpButtonNoPress() {
        pressedJumpButton = false;
}

Добавлено (17 ноября 2015, 10:59)
---------------------------------------------
Всё, разобрался сам. Всем спасибо!

Сообщение отредактировал poopkin - Понедельник, 16 Ноября 2015, 12:31
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг