using System.Collections.Generic;
using UnityEngine;
public class DuiDuiPeng : MonoBehaviour {
public List<Vector3> listpos; //存放物体出现的指点位置
public List<GameObject> listgo; //存放创建物体
public List<GameObject> listdes = new List<GameObject>(); //存放选中物体
private GameObject go1; //创建出的物体
private GameObject go2;
void Start () {
Createpos();
Create();
Position();
}
#region 创建物体,并随机赋值位置
void Createpos()
{
//初始化,位置列表
for (int i = 0; i <= 6; i += 2)
{
for (int j = 0; j <= 6; j += 2)
{
listpos.Add(new Vector3(i, 0, j));
}
}
}
void Create()
{
for (int i = 0; i < 8; i++) //生成不同位置的两个相同物体
{
int atype = Random.Range(0, 4); //随机出现物体类型
go1 = GameObject.CreatePrimitive((PrimitiveType)atype); //创建物体
go2 = GameObject.CreatePrimitive((PrimitiveType)atype);
go1.AddComponent<DestroyMouse>(); //给生成物体guazDestoryMouse代码
go2.AddComponent<DestroyMouse>();
listgo.Add(go1);
listgo.Add(go2); //将生成物体存入列表
go1.name = go2.name = "" + (PrimitiveType)atype + i;//指定生成物体名称一致
}
}
void Position()
{
for (int i = 0; i < 16; i++)
{
int a = Random.Range(0, listpos.Count); //从0~list2的长度中随机生成索引值
listgo[i].transform.position = listpos[a]; //将得到的随机位置赋值给游戏对象
listpos.Remove(listpos[a]);//移除已经生成物体的位置
}
}
#endregion
}
//然后再创建如下代码即可(注意代码中名称不能打错,和上示代码对应)
public class DestroyMouse : MonoBehaviour {
DuiDuiPeng ex; //获取实例,用于获取listdes;
MeshRenderer mr;
MeshRenderer mr2;
// Use this for initialization
void Start()
{
mr = this.gameObject.GetComponent<MeshRenderer>(); //获取组件
ex = GameObject.Find("Plane").GetComponent<DuiDuiPeng>();
}
void OnMouseDown()
{
mr.material.color = Color.red; //点击后的颜色为设置为红色
ex.listdes.Add(this.gameObject);
if (ex.listdes.Count == 2)
{
if (ex.listdes[0].name == ex.listdes[1].name)
{
Destroy(ex.listdes[0], 0.3f); //0.3秒后销毁物体
Destroy(ex.listdes[1], 0.3f);
ex.listdes.Clear(); //保险起见,清空集合
}
else //如果两次点击的不是相同的物体
{
mr.material.color = Color.white; //将当前物体变成默认颜色,白色
mr2 = ex.listdes[0].GetComponent<MeshRenderer>();
mr2.material.color = Color.white; //之前选中的物体变回原来颜色
ex.listdes.Clear();
}
}
}
}
作者:Czhenya
链接:https://czhenya.blog.csdn.net/article/details/77196904
来源:CSDN
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。