2017-02-15 6 views
0

Я не знаю, почему Insantiation не работает. Я пытаюсь сделать это с помощью пробела. Или это может быть что-то вроде оси?Почему моя игра не создается?

public GameObject projectile; 
public Transform padre, hijo; 
public Rigidbody r; 
private float value; 

void Start() { 
    padre = transform.parent; 
    hijo = transform.GetChild (0); 
    value = 0; 
} 

void Update() { 

    float j = Input.GetAxis ("Jump"); 
    if (j == 1 && value == 0) { 
     Instantiate (projectile, hijo.position, hijo.transform.rotation); 
    } 

    float h = Input.GetAxis ("Horizontal2"); 
    r.transform.Translate (h * Time.deltaTime, 0, 0); 

    float v = Input.GetAxis ("Vertical2"); 
    padre.Rotate (0, 0, -v * Time.deltaTime * 20); 

    value = j; 
} 
+1

Убедитесь, что вы держите пространство достаточно долго. 'GetAxis' по умолчанию не будет возвращать 1 сразу после нажатия, он сглаживает значение. –

+0

вы можете попробовать 'if (Input.GetKeyDown (KeyCode.Space)) {j = 1}', если вы хотите проверить, было ли нажато космос на этом фрейме. Или используйте GetAxisRaw, если вы не хотите сглаживания. – Maakep

ответ

0

Вы проверка J точно равный 1. Однако, getAxis возвращает поплавок, который будет близко, но не точно равна 1. Вместо проверке, когда J достаточно близок к 1.

например (псевдокод):

float j = Input.GetAxis ("Jump"); 
float ep=.1f; 
if (Math.abs(j-1)<ep && value == 0) { 
    //Instantiate 

Кроме того, вы должны убедиться, что value фактически равен 0 (вы могли бы иметь какой-то другой код, изменяющее его за пределы, что показано)

2

Сравнение поплавка никогда не является хорошей идеей.

Переменная j должна равняться 1 и value переменная должна быть 0 до того, что если утверждение становится верным. Input.GetAxis возвращает значения между 0 и 1.

Если все, что вам нужно сделать, это создать экземпляр GameObject, когда клавиша Space нажата они просто используют Input.GetKeyDown вместо Input.GetAxis

if (Input.GetKeyDown(KeyCode.Space)) 
{ 
    Instantiate(projectile, hijo.position, hijo.transform.rotation); 
} 
Смежные вопросы