有没有一种方法可以重置ARCore检测到的表面而不破坏和重新构建会话脚本?

时间:2019-03-25 13:27:44

标签: unity3d augmented-reality arcore

我正在制作一个使用可选ARCore的应用程序。这意味着我在运行时启用和禁用了ARCore设备。我注意到,即使您禁用并重新启用了ARCore设备,检测到的表面仍将存在。

是否可以重置检测到的表面数据?我希望用户每次打开AR内容都重新开始。

我在其他线程中找到了答案,但是所有这些都涉及从ARCore设备上强行销毁ARCoreSession脚本,然后将脚本重新添加回它。这似乎..愚蠢和低效。

1 个答案:

答案 0 :(得分:0)

使用ARCore删除场景中仅检测到的平面(不破坏并重新创建ArSession)不是一个好习惯。替代方法是删除所有ArAnchors个旨在容纳Renderables的内容。尽管最可靠的方法是销毁当前的ArSession并重新创建一个新的# Karatsuba multiplication implementation in python import numpy as np import sys def algo_recurs(val1, val2): sys.setrecursionlimit(sys.getrecursionlimit() + 1) # Changes the recursion limit every time n = len(str(val1)) #print(n) divVal = 10**(n/2) a = val1 / divVal # a = 12 b = val1 % divVal # b = 34 c = val2 / divVal # c = 43 d = val2 % divVal # d = 21 if(len(str(val1)) == 2): prob1 = a * c prob2 = b * d prob3 = (a+b)*(c+d) - prob1 - prob2 finalResult = prob1*(divVal*divVal)+prob3*divVal+prob2 return(finalResult) else: prob1 = algo_recurs(a,c) prob2 = algo_recurs(b,d) prob3 = algo_recurs((a+b),(c+d)) - prob1 -prob2 finalResult = prob1*(divVal*divVal)+prob3*divVal+prob2 return(finalResult) multiplicand = int(input("Enter the multiplicand:")) multiplier = int(input("Enter the multiplier:")) output = algo_recurs(multiplicand, multiplier) print(output)

有关更多详细信息,请参见此GitHub问题#253:Clear Planes and Anchors

和...

查看StackOverflow帖子How to remove all planes in ARCore了解更多信息。