我一直在关注本教程,试图能够检测我是否点击了3D模型,但遇到了一些问题.
这是我的 -
public GameObject getObject (int screenX, int screenY) {
Ray ray = perspectiveCamera.getPickRay(screenX, screenY);
GameObject result = null;
for (int i = 0; i < modelInstanceArray.size; ++i) {
final GameObject selectedModelInstance = modelInstanceArray.get(i);
if (Intersector.intersectRayBounds(ray, selectedModelInstance.boundingBox, null)) {
result = selectedModelInstance;
}
}
return result;
}
@Override
public boolean touchDown (int screenX, int screenY, int pointer, int button) {
getObject(screenX, screenY);
return true;
}
Run Code Online (Sandbox Code Playgroud)
..在哪里GameObject扩展ModelInstance,以获得calculateBoundingBox(new BoundingBox()).mul(this.transform)modelInstance,因为它是..错误.. 实例.
当我打印时,ray我得到了一些东西 -
ray [(1.7015453E-4,8.619284E-4,1.0):(1.8586617E-4,-1.0,0.0)]
Run Code Online (Sandbox Code Playgroud)
哪个看起来很小..小?我不确定这看起来是否正确..
我的边界框是正确的,打印为 -
[(-120.62405,-197.27795,-57.81021)|(147.17102,202.70493,42.185677)]
Run Code Online (Sandbox Code Playgroud)
但getObject 始终返回Array中的(仅用于现在)对象,因此出现了问题.我觉得这是我的问题Ray,但我不确定它应该是什么样的.
有什么建议?
| 归档时间: |
|
| 查看次数: |
490 次 |
| 最近记录: |