2017-02-17 10 views
-1

У меня есть главный символ префава, который перемещается и стреляет. Я прикрепил сборку и функцию съемки к кнопке на моем холсте. Когда я начинаю игру, я могу стрелять хорошо, но как только я начну двигаться, кнопка продолжает стрелять из одной и той же позиции. Он не распознает движение моего персонажа и не распознает изменение позиции. Эта функциональность работала нормально, прежде чем я положил ее на кнопку, поэтому я предполагаю, что неправильно настрою кнопку. Here is my button set up, the prefab is in there, script shoot using the fire function Кнопка Unity не правильно стреляет в снаряды

Вот мой огонь функция (Смещение преобразования прилагается к моему игроку, и в сборного я, что преобразование прилагается к сценарию):

public Transform Offset; 
public float Speed; 

public void Fire() 
{   
    GameObject obj = Pool.current.getObj(); 
    if (obj == null) return; 

    obj.transform.position = Offset.position; 
    obj.transform.rotation = Offset.rotation; 
    obj.SetActive(true);    
} 

Как я сказал, этот скрипт работал нормально, когда Я хотел использовать пробел, чтобы стрелять, но как только я привязал его к кнопке, он не следует за трансформацией игроков. Есть идеи?

+0

Установите смещение в преобразование проигрывателя? – FINDarkside

+0

Он не признает, что игроки трансформируются вообще. Я получаю преобразование игрока в функции запуска скрипта, я опустил это в вопросе, но в любом случае он говорит, что преобразование отсутствует там – SJR59

+0

Что значит, что его нет? Если это было null, вы получите исключение. И если его там нет, то почему вы опустили его в вопросе, так как проблема явно там? – FINDarkside

ответ

1

Было бы лучше создать переменную типа UI.Button в сценарии персонажа, назначить кнопку в инспекторе и в методе Start() вашего персонажа или оружие сделать что-то вроде этого:

using UnityEngine.UI 

public Button myButton; //Assign in inspector 

void Start() 
{ 
myButton.onClick.AddListener(() => { Fire(); }); 
} 

Выше кода добавит метод Fire() в качестве слушателя метода OnClick() кнопки.