unity3d - 游戏对象的大小限制是多少?
问题描述
我正在使用 unity 和 Mapbox 构建 AR 应用程序。我有一点要代表一座建筑物。我可以通过 Mapbox 对点进行地理定位。我想到处看到这个物体。所以,我根据距离改变物体的大小。
首先,代码正在运行。但是,我看不到那个点真的很远,5公里远。
// Update is called once per frame
void Update()
{
// Get user location
// Latitude
x = getLocation.x1.ToString();
user_lat = Convert.ToDouble(x);
user_lat_rad = Math.PI * user_lat / 180.0; // Radian
// Longitude
y = getLocation.y1.ToString();
user_lon = Convert.ToDouble(y);
user_lon_rad = Math.PI * user_lon / 180.0; // Radian
// Change POIs sizes
distances = distance(user_lat_rad, user_lon_rad);
double s = 0.3; // size of the poi
double d = 50f; // specific distance to point (reference distance)
double size = (distances * s) / d;
float size2 = Convert.ToSingle(size);
temp = transform.localScale;
temp.x = size2;
temp.y = size2;
temp.z = size2;
transform.localScale = temp;
}
public double distance(double lat2, double lon2)
{
// Haversine Formula
// Lat2,Lon2 = User Location
// Lat1,Lon1 = POI Location
double dist1 = Sqrt((Pow(Sin((lat2 - lat1) / 2), 2)) + Cos(lat2) * Cos(lat2) * (Pow(Sin((lon2 - lon1) / 2), 2)));
double distance = 2 * r * Asin(dist1);
return distance;
}
为什么即使物体大小发生变化,我也看不到远处的点?这有什么限制吗?
解决方案
正如评论中所说,这个问题很可能是.Camera's
farClipPlane
将发生绘图的相对于相机的最远点。
任何远离 的对象/三角形Camera
都不会被渲染。
在 Inspector 中,它在Camera
组件上配置 → Clipping Planes
→Far
或使用代码
cameraReference.farClipPlane = XYZ;
推荐阅读
- python - 不支持 ssd_inception_v2。有关与不同版本 TensorFlow 兼容的特征提取器,请参阅 `model_builder.py`
- vert.x - 无法使用 VertxUnitRunner 运行测试
- postgresql - 尝试添加数据库时出现 Qt PostgreSQL 链接器错误
- excel - 如何将列值转换为vba宏中的行
- reactjs - 最大的内容绘画是一个大盖茨比背景图像,非常慢
- java - 使用设计模式避免 switch-case 条件
- angular - 将默认蓝色标记更改为我自己的图标标记,mapbox angular
- oracle - Oracle 自治数据库 - 使用了过多的存储?
- c# - 值之外的 Azure Blob 触发连接
- php - 在同一页面上登录/注册