我是Unity3d的新手,我正在使用NyARToolkit插件为Android开发AR应用。我需要一些指导来帮助实现以下效果。
让我们假设,有一个3d模型作为GameObject,描绘了一个带有起点的建筑物楼层,即#34;你在这里"。如果某个房间被触摸,我想根据用户选择设置从该起点到该级别其他点的路线的动画。
以下图片显示了这个概念的想法:
我在S.O.上寻找类似的东西,但找不到符合我需要的东西,所以 我需要你的帮助,就如何在Unity3d中实现这个功能给我一些建议。我虽然使用例如一个java脚本,var值存储屏幕上点的x,y?
因为我是新手你的观点,关于这个概念的可行性对于在Unity3d中为我提供正确的方法至关重要。
感谢大家的时间阅读,等待你的回复。如果你想让我详细说明这个概念,我会'我愿意这样做。
答案 0 :(得分:0)
实现此目的的最简单方法是在每个可点击对象上叠加矩形或平面,并动态更改叠加平面的可见性:
void ToogleVisibility(GameObject plane, bool bEnable)
{
plane.setActive(bEnable);
}
编辑:我认为已经很清楚,但OP的情况似乎并非如此。请参阅下面的完整代码。
public class Highlight : MonoBehaviour {
GameObject room1=null;
GameObject room2=null;
bool bRoom1Active = false;
bool bRoom2Active =false;
// Use this for initialization
void Start () {
room1 = GameObject.Find ("Room1");
room2 = GameObject.Find ("Room2");
room1.SetActive (false);
room2.SetActive (false);
}
// Update is called once per frame
void Update () {
}
void OnGUI() //Substitute this with your OnTouch() logic
{
if (GUI.Button (new Rect (10, 10, 100, 30), "Toggle Room1")) {
bRoom1Active = !bRoom1Active;
room1.SetActive(bRoom1Active);
}
if (GUI.Button (new Rect (10, 60, 100, 30), "Toggle Room2")) {
bRoom2Active = !bRoom2Active;
room2.SetActive(bRoom2Active);
}
}
}