Unity Button无法正确拍摄弹丸

时间:2017-02-17 20:20:58

标签: c# button unity3d

我有一个预制的主角,四处移动并射击。我将预制件和拍摄功能附加到画布上的按钮上。当我开始游戏时,我可以拍摄很好,但是一旦我开始移动按钮,就会从同一个位置发射子弹。它无法识别我的角色的变换移动,也无法识别位置变化。这个功能在我把它放入按钮之前工作正常,所以我假设我没有正确设置按钮。 Here is my button set up, the prefab is in there, script shoot using the fire function

这是我的火力函数(偏移变换附加到我的播放器,在预制件中我有附加到脚本的变换):

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);            
}

就像我说这个脚本在我想使用空格键进行拍摄时效果很好,但是一旦我将它附加到按钮上,它就不会跟随玩家变换。任何想法?

1 个答案:

答案 0 :(得分:1)

最好在角色脚本中创建UI.Button类型的变量,在检查器中分配按钮,在角色或武器的start()方法中执行以下操作:

using UnityEngine.UI

public Button myButton; //Assign in inspector

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

上面的代码将添加方法Fire()作为按钮的OnClick()方法的监听器。