gpt4 book ai didi

c# - Unity : Map Input. GetButtonDown ("Jump") 在iOS touch

转载 作者:太空狗 更新时间:2023-10-30 00:24:52 26 4
gpt4 key购买 nike

在 Unity 中,我可以使用 Input.GetButtonDown("Jump") 默认获取键 Space。如何将屏幕触摸映射到 iOS 中的“跳转”操作?

在此documentation ,它只解释了在 JavaScript 中获取触摸。而在这个video tutorial ,它只提到了 Button。有没有办法直接将屏幕触摸/手势映射到预定义的 Action (如跳跃)?

注意:我使用单声道 C# 脚本。

最佳答案

统一获得 Touch evens 的方法不止一种:

if(Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)
{
//Your stuff here
}

以上演示使用Input.GetTouch

但是,还有一个我更喜欢的替代方案:

if(Input.GetMouseButtonDown(0))
{
//Your stuff here
}

if(Input.GetMouseButtonUp(0))
{
//Your stuff here
}

以上使用Input.GetMouseButtonDownInput.GetMouseButtonUp分别,它不仅在鼠标左键单击时触发,而且在 iOS 和 Android 的触摸事件上触发。顾名思义,GetMouseButtonDown 在您第一次触摸屏幕时触发,而 GetMouseButtonUp 在您的手指松开时触发。您显然希望在其中添加一些额外的检查,例如确保用户没有尝试拖动某些东西,或者他是否一直将手指按住屏幕等。

但是请记住,只要包含它们的脚本处于事件状态,无论您单击何处,上述内容都会触发。所以如果你的游戏也有按钮(我猜它会有),你可以检查点击/触摸是否在某个区域,或者你可以在相机前面和按钮后面添加一个透明平面,然后检查这样的点击:

if(Input.GetMouseButtonDown(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast(ray,out hit) && hit.collider.gameObject.name == "myObjectName")
{
//Your stuff here
}
}

只有当您左键单击具有您选择的名称的游戏对象(它也有一个碰撞器)并且它和相机之间没有其他东西时,才会触发上面的内容。一个透明的平面将捕获您的所有点击,允许您在其上方粘贴其他元素。

如果我解释得不够好,或者您有任何其他问题,请告诉我,我会尽力详细说明。

关于c# - Unity : Map Input. GetButtonDown ("Jump") 在iOS touch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21110862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com