所以我一直在玩纸板 SDK 附带的纸板演示场景。正常的功能是一个浮动的红色立方体,当你看到它时会变成绿色,当按下纸板磁铁时会在新的位置重生。此脚本附加到收藏品。我更改了对象并添加了评分逻辑。我刚刚为这个问题包括了纸板的位。
现在这对单个对象非常有效。但是,假设我想要地形上的多个可收集实例,并且除了在收集它们时增加分数计数之外,我希望相同的颜色更改逻辑为它们工作。我该怎么做?我尝试将所有收藏品命名为相同的名称,并明确找到具有该名称的游戏对象。但逻辑似乎并没有扩展到其他收藏品。请帮忙。
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();
}
}