题目是这样的,3个cube就分别叫a b c 吧,如图
鼠标点中其中一个变色,如点中a,其变蓝,然后点中另一个后另一个变蓝,上一个点中的物体,恢复原来颜色,
我写的代码如下:其中我用了goto,虽然实现了,但是感觉不好,有人说用递归做,求指点
using UnityEngine;
using System.Collections;
public class MyScript : MonoBehaviour
{
private Color TempColor;//存物体颜色
private GameObject TempGame;//存点中物体
private bool Tempbool=true;//控制变化
void Update ()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit)&&Input.GetMouseButtonDown(0))
{
aa:;//goto语句跳转标签
if (Tempbool)
{
Debug.Log(Tempbool);
TempGame = hit.transform.gameObject;//存点中物体
Tempbool = false;
}
else {
Debug.Log(Tempbool);
TempGame.renderer.material.color = TempColor;//上一个物体变色
Tempbool = true;
goto aa;
}
TempColor = hit.transform.gameObject.renderer.material.color;//存点中物体颜色
hit.transform.gameObject.renderer.material.color = Color.blue;//点中物体后变蓝
}
}
}