首页 > 解决方案 > 游戏对象的大小限制是多少?

问题描述

我正在使用 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;
}

为什么即使物体大小发生变化,我也看不到远处的点?这有什么限制吗?

标签: unity3dmapboxaugmented-reality

解决方案


正如评论中所说,这个问题很可能是.Camera's farClipPlane

将发生绘图的相对于相机的最远点。

任何远离 的对象/三角形Camera都不会被渲染。


在 Inspector 中,它在Camera组件上配置 → Clipping PlanesFar

在此处输入图像描述

或使用代码

cameraReference.farClipPlane = XYZ;

推荐阅读