C# 如何在unity中实例化球体对象(球体)的标记
我是unity的初学者,我想在球体对象上放置一个标记到一个特定的位置(通过纬度和经度)。我尝试了以下代码:C# 如何在unity中实例化球体对象(球体)的标记,c#,unity3d,C#,Unity3d,我是unity的初学者,我想在球体对象上放置一个标记到一个特定的位置(通过纬度和经度)。我尝试了以下代码: using System.Collections; using System.Collections.Generic; using UnityEngine; public class testPosLatLong : MonoBehaviour { public float longi; public float lati; public float radius; public Tr
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class testPosLatLong : MonoBehaviour {
public float longi;
public float lati;
public float radius;
public Transform marker;
// Use this for initialization
void Start () {
// longitude and latitude of uae
longi=23.4241f;
lati=53.8478f;
// Transfer to Radians from Degrees
float templongi = longi * Mathf.PI / 180;
float templati = lati * Mathf.PI / 180;
float Xpos = radius * Mathf.Cos(templati) * Mathf.Cos(templongi);
float Ypos = radius * Mathf.Cos(templati) * Mathf.Sin(templongi);
float Zpos = radius * Mathf.Sin(templati);
Debug.Log ("X, Y, Z" + Xpos + " " + Ypos + " " + Zpos);
// Set the X,Y,Z pos from the long and lat
Instantiate(marker);
marker.position = new Vector3 (Xpos, Zpos, Ypos);
Debug.Log ("Marked positions: X, Y, Z" + Xpos + " " + Ypos + " " + Zpos);
}
// Update is called once per frame
void Update () {
}
}
我需要将此脚本拖动到球体对象或摄影机对象吗?或者创建任何其他对象并在其上拖动。我不知道如何在球体上放置一个标记,因为我完全是统一的初学者
我的球体是一个球体(我向球体添加了材质(添加了地球图像),并使其成为一个球体对象,如屏幕截图所示)。
在将上述脚本添加到摄影机对象后,当我播放并检查控制台时,x、y、z位置为0,并且看不到地球仪上的任何标记
我想在相应的国家/地区添加PIN码并贴上标签。类似于此上的地球仪
嗨,这看起来是个有趣的项目 要回答有关在何处放置脚本的问题,可以将脚本放置在场景中的任何对象上。 在场景中加载对象后,将运行其附加的脚本 不过,在您的情况下,将脚本放置在球体对象上可能是有意义的。 通过执行此操作,可以轻松引用球体对象,并将标记作为球体的子对象附着 至于标记,我建议实例化一个预置。 在资产文件夹中创建一个名为“资源”的文件夹,并在其中放置一个预制件 然后,您可以使用以下代码来实例化预置
//原始对象、实例化位置和新对象的方向
GameObject marker=(GameObject)Resources.Load(“markerobject”);
Vector3位置=新Vector3(20,20,20);
四元数旋转=四元数欧拉(0,90,0);
//脚本附加到的对象
游戏对象世界=this.GameObject;
//实例化预置
实例化(标记、位置、旋转、世界变换);
我已经给了实例化对象一个设置的位置和方向,所以请使用上面的代码作为参考,并根据需要进行调整
至于实例化方法的参数,您可以在这里找到文档
下面是一些参数的细分:
- 第一个参数(对象):这是您要创建的原始对象 实例化李>
- 第二个参数(矢量3):这是 将显示实例化的对象李>
- 第三个参数(四元数):这是实例化对象的方向李>
- 第四个参数(转换):这将是实例化对象的父对象。如果你不需要给它一个家长,你可以忽略它