private void InitMRWall() { units = new List <MRWallUnit>(); float initPosZ = (float)col / 2 - 0.5f; float initPosY = (float)row / 2 - 0.5f; for (int j = 0; j < row; j++) { for (int i = 0; i < col; i++) { GameObject wall = Instantiate(WallPrefab); wall.name = "unit_" + (j * col + i); wall.transform.parent = ARWall.transform; wall.transform.localPosition = new Vector3(0, initPosY - j, initPosZ - i); wall.transform.localEulerAngles = Vector3.zero; wall.transform.localScale = Vector3.one; MRWallUnit unit = wall.GetComponent <MRWallUnit>(); for (int k = 0; k < unit.paintObjs.Length; k++) { unit.paintObjs[k].PositionMap = model.paintObjs[k].PositionMap; unit.paintObjs[k].NormalMap = model.paintObjs[k].NormalMap; } PaintVR.PBSPaintableMiniature subComponent = unit.coverMesh.gameObject.AddComponent <PaintVR.PBSPaintableMiniature>(); subComponent.registerUndoMgr = false; subComponent.OriginObj = PBSRoot; Vector2 UVst = new Vector2((float)i / (float)col, (float)(row - j - 1) / (float)row); Vector2 UVed = new Vector2((float)(i + 1) / (float)col, (float)(row - j) / (float)row); unit.ChangeCoverMeshUV(UVst, UVed); Vector3 VertexSt = new Vector3(-col / 2.0f + i, -row / 2.0f + (row - j - 1), 0); Vector3 VertexEd = new Vector3(-col / 2.0f + (i + 1), -row / 2.0f + (row - j), 0); unit.ChangeCoverMeshVertexs(VertexSt, VertexEd); unit.fishSpeed = fishSpeed; unit.mgr = this; unit.UpdateWorldPosMatrix(); units.Add(unit); if (ScoreManager.instance != null) { ScoreManager.instance.AddCancelComboObj(unit.paintObjs[1]); ScoreManager.instance.AddCancelComboObj(subComponent); } } } if (ScoreManager.instance != null) { ScoreManager.instance.AddCancelComboObj(wall.GetComponent <PaintVR.PBSPaintableObject>()); } SetAcitveUnit(); }
public void CheckKeyDown() { string sr = Input.inputString; for (int i = 0; i < sr.Length; i++) { int inx = pareToUnit.IndexOf(sr[i]); if (inx == -1) { continue; } MRWallUnit unit = units[inx]; if (unit.IsPlaying) { continue; } unit.RotateStart(); } }
public void CheckKeyDown(string sr) { for (int i = 0; i < sr.Length; i++) { int inx = pareToUnit.IndexOf(sr[i]); if (inx == -1) { continue; } int actInx = Mathf.FloorToInt((float)inx / (float)pareToUnit.Length * (float)activeUnit.Length); //Debug.Log("[Inx:" + inx + "]" + "[ActInx:" + actInx + "]"); inx = pareToUnit.IndexOf(activeUnit[actInx]); MRWallUnit unit = units[inx]; if (unit.IsPlaying) { continue; } unit.RotateStart(); } }
private IEnumerator InitCoroutine() { GameObject tp = Instantiate(WallPrefab); model = tp.GetComponent <MRWallUnit>(); paintObjs = model.paintObjs; startButton = GameStartButton.GetComponent <PaintVR.PBSPaintableObject>(); startButton.AddOnPaintingListener(TiggerStartEvent); generator.targetObject = GameStartButton; generator.GBufferGeneratorInit(); yield return(new WaitForSeconds(0.1f)); generator.targetObject = wall.gameObject; generator.GBufferGeneratorInit(); yield return(new WaitForSeconds(0.1f)); foreach (var obj in paintObjs) { generator.targetObject = obj.gameObject; generator.GBufferGeneratorInit(); yield return(new WaitForSeconds(0.1f)); } PBSRoot = model.coverMesh.gameObject.AddComponent <PaintVR.PBSPaintableObjectRoot>(); PBSRoot.registerUndoMgr = false; Mesh mesh = model.coverMesh.mesh; Vector3[] vertexs = new Vector3[4]; vertexs[0] = new Vector3(-col / 2.0f, -row / 2.0f, 0.0f); vertexs[1] = new Vector3(+col / 2.0f, +row / 2.0f, 0.0f); vertexs[2] = new Vector3(+col / 2.0f, -row / 2.0f, 0.0f); vertexs[3] = new Vector3(-col / 2.0f, +row / 2.0f, 0.0f); mesh.vertices = vertexs; model.coverMesh.mesh = mesh; generator.targetObject = model.coverMesh.gameObject; generator.GBufferGeneratorInit(); cleaner.srcTexture = PBSRoot.PaintTextureData.AlbedoTexture; yield return(new WaitForSeconds(0.1f)); InitMRWall(); yield return(new WaitForSeconds(0.1f)); model.coverMesh.GetComponent <Renderer>().enabled = false; model.coverMesh.GetComponent <Collider>().enabled = false; model.coverMesh.transform.parent = ARWall.transform; Destroy(model.gameObject); yield return(new WaitForSeconds(0.1f)); init = true; }