我的相机必须聚焦在GameObject
可以随时间缩放的图像上。如何计算相机位置,使其始终与此保持相同距离GameObject
?我已经尝试做类似的事情
camera.position.y += object.scaleFactor / 2;
camera.position.z -= object.scaleFactor / 2;
但是对象变得越大,其作用就越小。我正在考虑使用边界框,您认为它可以工作吗?
非常感谢 !
用这个:
// compute this when scale is 1.0f
Vector3 originalPosition = camera.position;
Vector3 originalDistance = camera.position - gameObject.position;
// then use:
camera.position = originalPosition + originalDistance * gameObject.scaleFactor;
如果这不起作用,请更详细地描述您的情况,我将编辑答案
例如:如果您希望相机与物体保持一定距离,则必须使用BoundingSphere.radius
:
// compute this when scale is 1.0f
Vector3 originalPosition = camera.position;
Vector3 temp = camera.position - gameObject.position;
Vector3 originalDirection = temp.normalized;
float originalDistance = temp.magnitude - boundingSphere.radius;
// use this when object is scaled:
camera.position = originalPosition + originalDirection * (boundingSphere.radius + originalDistance);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句