gpt4 book ai didi

c# - PoseProvider.cs 和 Tango : MonoDevelop error

转载 作者:行者123 更新时间:2023-11-30 23:23:47 25 4
gpt4 key购买 nike

TangoSDK/Core/Scripts/TangoWrappers/PoseProvider.cs ,在Unity中MonoDevelop按Play时有两个变量有问题:adjustedTimeStamp2和targetToDevice。MonoDevelop 提示“使用未分配的局部变量”,可能是因为它只检查 if 的第一部分。

我替换了第 104 行和第 105 行:

if (!GetFrameToDeviceTransformation(framePair.baseFrame,timeStamp, out adjustedTimeStamp1, out baseToDevice)
|| !GetFrameToDeviceTransformation(framePair.targetFrame, timeStamp, out adjustedTimeStamp2, out targetToDevice))

等效代码:

        bool a = !GetFrameToDeviceTransformation(framePair.baseFrame, timeStamp, out adjustedTimeStamp1, out baseToDevice);
bool b = !GetFrameToDeviceTransformation(framePair.targetFrame, timeStamp, out adjustedTimeStamp2, out targetToDevice);
if (a||b)
{
pairIsValid = false;
}

现在 monodevelop 不再提示了。

我想知道是不是只有我一个人,或者我是否应该在编辑器上激活一些东西让它理解它。

最佳答案

有趣的是你提到这个问题,我注意到在 Unity 版本的 Mono/c# 中涉及 ||! 的语句存在完全相同的问题。

关于这个问题,我实际上倾向于说,这只是 Unity 的一个已知问题

作为一种习惯,您可以尝试插入更多或更少的空格/换行符,例如

if (
! GetFrameToDeviceTransformation(...)
||
! GetFrameToDeviceTransformation(...)
)

你也可以试试这个,比如说......

if (
( ! GetFrameToDeviceTransformation(...) )
||
( ! GetFrameToDeviceTransformation(...) )
)

顺便说一句,我相信您已经意识到这一点:您的替换代码在行为上略有不同。您的代码 运行这两个调用。如果第一个为假,原始代码将不会运行第二个调用..错误..为真(你明白我的意思!)

所以,要肛交,那...

bool finalCondition = false;
bool a = !GetFrameToDeviceTransformation(...);
if (a == true)
{
finalCondition = true;
}
else
{
bool b = !GetFrameToDeviceTransformation(...);
if (b == true)
{
finalCondition = true;
}
}
if (finalCondition)
{
pair whatever...
}

最后还要注意

我不知道 GetFrameToDeviceTransformation 做了什么,但完全有可能存在某种复杂的硬件赛道条件。所以,可能是在 Google 的办公室,示例代码运行良好,但工程师们搞砸了,事实上它只是随机工作,因为硬件设置;你发现它不起作用。 (TBC 如果是这种情况,我在此处的第一句话中所说的是无关紧要的。)

关于c# - PoseProvider.cs 和 Tango : MonoDevelop error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38171149/

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