在查看多个对象时,如何复制得分逻辑和对象更改颜色的条件?

时间:2015-05-13 05:34:42

标签: unity3d google-cardboard

所以我一直在玩纸板SDK附带的纸板演示。正常功能是一个浮动的红色立方体,当看到时变为绿色,并在按下纸板磁铁时在新位置重新生成。此脚本附加到collectable。我已经改变了对象并添加了一个评分逻辑。我刚刚把这个问题的纸板包括在内。

现在这适用于单个对象。但是,假设我想在地形上收集可收集的多个实例,除了在收集它们时增加得分数,我希望相同的颜色更改逻辑适用于它们。我该怎么做? 我已经尝试将所有收集品命名为相同的名称,并明确找到具有该名称的gameobject。但逻辑似乎并没有扩展到其他收藏品。请帮忙。

void start()
{
            head = Camera.main.GetComponent<StereoController> ().Head;
            startingPosition = transform.localPosition;
            CardboardGUI.IsGUIVisible = true;
            CardboardGUI.onGUICallback += this.OnGUI;
}

//这是改变对象颜色的逻辑,我在此之后添加了分数增量和定时器减量逻辑

void Update() {


RaycastHit hit;
        bool isLookedAt = GetComponent<Collider>().Raycast(head.Gaze, out hit, Mathf.Infinity);
        GetComponent<Renderer>().material.color = isLookedAt ? Color.green : Color.white;
        if (Cardboard.SDK.CardboardTriggered && isLookedAt) {
            // Teleport randomly.
            Vector3 direction = Random.onUnitSphere;
            direction.y = Mathf.Clamp(direction.y, 0.5f, 1f);
            float distance = 2 * Random.value + 1.5f;
            transform.localPosition = direction * distance;

//Score logic
}
//For placing the coconut back to original position on selecting reset.

void OnGUI() {
        if (!CardboardGUI.OKToDraw(this)) {
            return;
        }
        if (GUI.Button(new Rect(50, 50, 200, 50), "Reset")) {
            transform.localPosition = startingPosition;
            //reset count and seconds
            count=0;
            Seconds=60;
        }
        if (GUI.Button(new Rect(50, 110, 200, 50), "Recenter")) {
            Cardboard.SDK.Recenter();
        }
}

0 个答案:

没有答案