Ursina -使按钮只能在距离相机一定半径范围内才可点击



我在ursina中创建了一个3d按钮,但假设我们离按钮有一公里远,我们仍然可以按下它。其中的逻辑在哪里?我想让按钮只有在距离它一定的半径范围内才可点击。

horror_gamemode = Button(parent = scene, model = 'cube', texture = None, color = color.black, highlight_color = color.dark_gray, scale = 1, position = (3, -49, 4), collider = 'mesh')

如果我没弄错的话,你想让一个按钮在我们超过100米的时候不可点击。为此,您可以使用ursina的距离函数来计算相机和按钮之间的位置,如果它小于100米,则使其可点击,否则不可点击(您可以使用.disabled = False # or True)。

的例子:

from ursina import *
from ursina.prefabs import *

app = Ursina()
horror_gamemode = Button(parent = scene, model = 'cube', texture = None, color = color.black, highlight_color = color.dark_gray, scale = 1, position = (0, 0, 0), collider = 'mesh')

def some_random_func():
print("HI")

def update():
if (distance(camera, horror_gamemode) < 50):
button.color = color.green
button.disabled = False
horror_gamemode.on_click = some_random_func
else:
button.color = color.red
print(distance(horror_gamemode, camera))
button.disabled = True
horror_gamemode.on_click = None
EditorCamera()

app.run()

最新更新