繁体   English   中英

随时间更改哪些对象按钮控制

[英]Change which objects button control over time

我正在制作一个游戏,玩家只能旋转他们所站立的当前牌。 我正在使用OnCollisionStay和Input.horizo​​ntal以及vertical来实现这一目标。 它适用于键盘,但我的目标是使其适用于移动设备。

我的问题是,当玩家移动时,我如何让UI按钮控制不同的图块。 所以基本上我需要切换按钮控制的哪个图块,因为玩家移动到下一个图块。 希望这是有道理的。 现在每个磁贴都有自己的脚本。 我在下面列出了其中一个。

谢谢!

void OnCollisionStay(Collision collision)
{
  if (collision.gameObject.tag == "Player")
  {
      float rotateright = Input.GetAxis("Horizontal") * rotatespeed;
    float rotateleft = Input.GetAxis("Vertical") * rotatespeed;

    transform.Rotate(0, rotateright, 0);
    transform.Rotate(rotateleft, 0, 0);
  }
}

使用OnCollisionStay来实现这样的功能并不理想。

例如,如果您的角色对象一次重叠两个碰撞器,它将同时旋转,导致各种空间混乱。

更好的想法是将当前磁贴存储在公共的类范围变量中,并通过单独的函数对其进行操作。 然后,您可以使用OnCollisionEnter检查何时输入新图块。

例:

GameObject currentTile;

void Update (){

    ControlCheck();

}

public void ControlCheck(){

    if (currentTile != null){

        // Rotation code goes here

    }

}

void OnCollisionEnter(Collision obj){

    currentTile = obj.transform.gameObject;

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM