【问题标题】:Move camera with button in unity统一用按钮移动相机
【发布时间】:2016-09-12 02:38:34
【问题描述】:

我想用按钮移动主摄像机。这是我的游戏:

这是我的场景:

希望在单击按钮时,主摄像头在另一张照片中向右移动。 这是我的按钮脚本:

public void Uss(GameObject camera) {

    Vector3 temp = transform.position; 
    temp.x += 0.1f; 
    camera.transform.position = temp; 

}

【问题讨论】:

  • transform 是按钮的变换,而不是相机的变换。你应该移动主摄像头的GameObject
  • 编辑我的代码。但仍然无法正常工作
  • 答案已编辑。

标签: c# unity3d unity5


【解决方案1】:

在您的脚本中,移动的是按钮,而不是相机。您应该改为移动主摄像机的 GameObject。

Transform cameraTransform; 
void Start()
{
    cameraTransform = Camera.main.gameObject.transform;
}
public void Update()
{
    cameraTransform.Translate(7, 0, 0);
}

但我建议您在按钮的onClick 处理程序中编写逻辑,如下所示。

将脚本附加到按钮GameObject

float step = 100;//find a proper value for this
void Start()
{
    Button b = gameObject.GetComponent<Button>();
    b.onClick.AddListener(
        ()=>
        {
            Camera.main.gameObject.transform.Translate(step, 0, 0);
        }
    );
}

步长值取决于图片的大小。

我还没有测试过这个脚本,但它应该可以这样工作。

【讨论】:

  • 如果我想当我点击按钮时相机从pick1移动到pick 2,又好又慢?我可以吗?像这样:Vector3 pos = transform.position; pos.x += 1; pos.x = Mathf.Clamp(pos.x, 0F, 300F);变换.位置=位置;但我是新人,无法组合此代码
  • 又好又慢?参考this post
猜你喜欢
  • 1970-01-01
  • 2019-04-29
  • 2020-08-25
  • 1970-01-01
  • 2014-09-29
  • 2015-07-29
  • 1970-01-01
  • 2018-01-31
  • 1970-01-01
相关资源
最近更新 更多