public static MyBoardTexture getInstance() { if (instance == null) { instance = new MyBoardTexture(); } return(instance); }
private void RenderRandomModels() { if (bInit) { return; } bInit = true; // 地板材质 // ------ Texture2D texture = MyBoardTexture.getInstance().GetTexture() as Texture2D; for (int i = 0; i < _Board.transform.childCount; i++) { GameObject tempObject = _Board.transform.GetChild(i).gameObject; tempObject.GetComponent <MeshRenderer>().material.SetTexture("_BaseColorMap", texture); tempObject.GetComponent <MeshRenderer>().material.SetFloat("_Smoothness", Random.Range(0.1f, 1.0f)); } texture = null; // 天空盒 // ------ SkyBoxObj = Instantiate(MySkyBoxs.getInstance().GetSkyBoxs()) as GameObject; // 加载模型文件 // ------ List <string> modelNames = Models.getInstance().GetModelNames(); for (int i = 0; i < modelNames.Count; i++) { float z = Random.Range(-20.0f, 20.0f); float y = 40.0f; float x = Random.Range(-20.0f, 20.0f); GameObject temp = Instantiate(Models.getInstance().GetModelsByName(modelNames[i])) as GameObject; // 随机位置 temp.transform.localScale = new Vector3(500.0f, 500.0f, 500.0f); temp.transform.position = new Vector3(x, y, z); temp.transform.Rotate(new Vector3(Random.Range(0.0f, 90.0f), Random.Range(0.0f, 90.0f), Random.Range(0.0f, 90.0f))); temp.transform.parent = this.transform; // 添加组件 temp.AddComponent <MeshCollider>(); temp.GetComponent <MeshCollider>().convex = true; temp.AddComponent <Rigidbody>(); temp.GetComponent <Rigidbody>().constraints = RigidbodyConstraints.FreezePositionX; temp.AddComponent <BVisible>(); } // 添加摄像机和灯光 并渲染图片 // ------ StartCoroutine(RenderPic()); }