3d模型的交互式动画在用户接触的

时间:2014-03-29 23:31:38

标签: android animation model unity3d interactive

我是Unity3d的新手,我正在使用NyARToolkit插件为Android开发AR应用。我需要一些指导来帮助实现以下效果。

让我们假设,有一个3d模型作为GameObject,描绘了一个带有起点的建筑物楼层,即#34;你在这里"。如果某个房间被触摸,我想根据用户选择设置从该起点到该级别其他点的路线的动画。

以下图片显示了这个概念的想法:

enter image description here

enter image description here

我在S.O.上寻找类似的东西,但找不到符合我需要的东西,所以 我需要你的帮助,就如何在Unity3d中实现这个功能给我一些建议。我虽然使用例如一个java脚本,var值存储屏幕上点的x,y?

因为我是新手你的观点,关于这个概念的可行性对于在Unity3d中为我提供正确的方法至关重要。

感谢大家的时间阅读,等待你的回复。如果你想让我详细说明这个概念,我会'我愿意这样做。

1 个答案:

答案 0 :(得分:0)

实现此目的的最简单方法是在每个可点击对象上叠加矩形或平面,并动态更改叠加平面的可见性:

void ToogleVisibility(GameObject plane, bool bEnable)
{
    plane.setActive(bEnable);
}

enter image description here enter image description here

编辑:我认为已经很清楚,但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);
    }
}
}