void UpdateGridCubes(ref GridPos prevGridPosL, ref GridPos newGridPosL, int gridSize, Dictionary<String, GameObject> LDict, int level) { newGridPosL = GridUtils.WorldToGrid(playerObject.transform.position, gridSize); if (!prevGridPosL.Equals(newGridPosL)) { GridPos deltaPos = prevGridPosL.Delta(newGridPosL); GridPos vPosL; string vPosKeyL; GameObject gObj; Vector3 newVector3; GridPos newGridPos; if (deltaPos.x != 0) { for (var i = -1; i <= 1; i++) { for (var j = -1; j <= 1; j++) { vPosL = new GridPos(prevGridPosL.x - deltaPos.x, prevGridPosL.y + i, prevGridPosL.z + j); vPosKeyL = vPosL.ToKeyString(); if (LDict.ContainsKey(vPosKeyL)) { gObj = LDict[vPosKeyL]; LDict.Remove(vPosKeyL); newGridPos = new GridPos(newGridPosL.x + deltaPos.x, prevGridPosL.y + i, prevGridPosL.z + j); newVector3 = new Vector3(newGridPos.x * gridSize, newGridPos.y * gridSize, newGridPos.z * gridSize); gObj.transform.position = newVector3; LDict.Add(newGridPos.ToKeyString(), gObj); StartCoroutine(TransitionRenderCube(gObj, level, newGridPos)); } else { Debug.Log("KEY NOT FOUND :" + vPosKeyL); } } } } if (deltaPos.z != 0) { for (var i = -1 + deltaPos.x; i <= 1 + deltaPos.x; i++) { for (var j = -1; j <= 1; j++) { vPosL = new GridPos(prevGridPosL.x + i, prevGridPosL.y + j, prevGridPosL.z - deltaPos.z); vPosKeyL = vPosL.ToKeyString(); if (LDict.ContainsKey(vPosKeyL)) { gObj = LDict[vPosKeyL]; LDict.Remove(vPosKeyL); newGridPos = new GridPos(prevGridPosL.x + i, prevGridPosL.y + j, newGridPosL.z + deltaPos.z); newVector3 = new Vector3(newGridPos.x * gridSize, newGridPos.y * gridSize, newGridPos.z * gridSize); gObj.transform.position = newVector3; LDict.Add(newGridPos.ToKeyString(), gObj); StartCoroutine(TransitionRenderCube(gObj, level, newGridPos)); } else { Debug.Log("KEY NOT FOUND :" + vPosKeyL); } } } } if (deltaPos.y != 0) { for (var i = -1 + deltaPos.x; i <= 1 + deltaPos.x; i++) { for (var j = -1 + deltaPos.z; j <= 1 + deltaPos.z; j++) { vPosL = new GridPos(prevGridPosL.x + i, prevGridPosL.y - deltaPos.y, prevGridPosL.z + j); vPosKeyL = vPosL.ToKeyString(); if (LDict.ContainsKey(vPosKeyL)) { gObj = LDict[vPosKeyL]; LDict.Remove(vPosKeyL); newGridPos = new GridPos(prevGridPosL.x + i, newGridPosL.y + deltaPos.y, prevGridPosL.z + j); newVector3 = new Vector3(newGridPos.x * gridSize, newGridPos.y * gridSize, newGridPos.z * gridSize); gObj.transform.position = newVector3; LDict.Add(newGridPos.ToKeyString(), gObj); StartCoroutine(TransitionRenderCube(gObj, level, newGridPos)); } else { Debug.Log("KEY NOT FOUND :" + vPosKeyL); } } } } prevGridPosL = newGridPosL; } }