public static MyMaterials getInstance() { if (instance == null) { instance = new MyMaterials(); } return(instance); }
internal bool IsMergable(MyMesh mesh) { // check if one and only spoorted vertex format // check if same material as the rest // check if has one part(!) // check if has one lod - for now return (mesh.LODs.Length == 1 && mesh.LODs[0].m_meshInfo.PartsNum == 1 && mesh.LODs[0].m_meshInfo.VertexLayout == MyMeshTableSRV.OneAndOnlySupportedVertexLayout && MyMaterials.AreMergable(mesh.LODs[0].m_meshInfo.m_submeshes[MyMesh.DEFAULT_MESH_TECHNIQUE][0].Material, m_rootMaterial)); }
private void RenderRandomModels() { if (bInit) { return; } bInit = true; // 盒子的纹理材质 // ------ Material mat = (Material)MyMaterials.getInstance().GetMaterial(); for (int i = 0; i < board.transform.childCount; i++) { GameObject tempObject = board.transform.GetChild(i).gameObject; tempObject.GetComponent <MeshRenderer>().material = mat; } // 加载模型文件 // ------ 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()); }
private void CmdAssignNewColor() { int numberOfPlayers = 0; foreach (GameObject player in GameObject.FindGameObjectsWithTag("Player")) { if (player != null && player != this.gameObject) { numberOfPlayers++; } } if (numberOfPlayers >= (int)MyMaterials.numOfTypes) { numberOfPlayers = (numberOfPlayers % (int)MyMaterials.numOfTypes); } Debug.LogWarning(numberOfPlayers); myMat = (MyMaterials)(numberOfPlayers); }