- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我的“Update()”函数中有一段代码,用于获取场景中的事件 block ,当它找到该 block 时,它会将这些坐标传递给“generateFromMiddleOfChunk()”函数。该函数将生成玩家周围 3 半径范围内的所有 block ,它使用 25 个“Instantiate()”函数和一个公式来实现。但它只应该在还没有 block 的地方实例化 block 。它不会那样做,如果有人可以看一下我的代码,我将不胜感激。对于非常重复的代码和大量 Debug.Log()
函数,我深表歉意。非常感谢您的帮助,非常感谢。
乔迪,
我的 Update()
函数中有这段代码:
function Update() {
var gameObjects : GameObject[] = FindObjectsOfType(GameObject) as GameObject[];
for (var i = 0; i < gameObjects.length ; i++) {
if(gameObjects[i].name.Substring(0,6) == "ACTIVE")
if(gameObjects[i].tag != "Player") {
var xco = gameObjects[i].transform.position.x;
var yco = gameObjects[i].transform.position.y;
var zco = gameObjects[i].transform.position.z;
Debug.Log(xco.ToString()+yco.ToString()+zco.ToString());
generateFromMiddleOfChunk(xco, yco, zco);
}
}
}
此代码块获取场景中的 block 并获取其 x、y 和 z 坐标,并将这些坐标传递给 generateFromMiddleOfChunk()
函数。这个函数看起来像这样:
function generateFromMiddleOfChunk(xco : int, yco : int, zco : int) {
//V1
chunk1 = "Chunk (" + xco.ToString() + ", " + yco.ToString() + ", " + zco.ToString() + ")";
chunk2 = "Chunk (" + (xco + chunkWidth).ToString() + ", " + yco.ToString() + ", " + (zco+chunkWidth).ToString() + ")";
chunk3 = "Chunk (" + (xco + chunkWidth).ToString() + ", " + yco.ToString() + ", " + zco.ToString() + ")";
chunk4 = "Chunk (" + (xco + chunkWidth).ToString() + ", " + yco.ToString() + ", " + (zco * -1).ToString() + ")";
chunk5 = "Chunk (" + (xco + chunkWidth * -1).ToString() + ", " + yco.ToString() + ", " + (zco+chunkWidth).ToString() + ")";
chunk6 = "Chunk (" + (xco + chunkWidth * -1).ToString() + ", " + yco.ToString() + ", " + zco.ToString() + ")";
chunk7 = "Chunk (" + (xco + chunkWidth * -1).ToString() + ", " + yco.ToString() + ", " + (zco * -1).ToString() + ")";
chunk8 = "Chunk (" + xco.ToString() + ", " + yco.ToString() + ", " + (zco + chunkWidth).ToString() + ")";
chunk9 = "Chunk (" + xco.ToString() + ", " + yco.ToString() + ", " + (zco * -1).ToString() + ")";
chunk10= "Chunk (" + (xco + chunkWidth * -2).ToString() + ", " + yco.ToString() + ", " + (zco + 2 * chunkWidth).ToString() + ")";
chunk11= "Chunk (" + (xco + chunkWidth * -2).ToString() + ", " + yco.ToString() + ", " + (zco + chunkWidth).ToString() + ")";
chunk12= "Chunk (" + (xco + chunkWidth * -2).ToString() + ", " + yco.ToString() + ", " + zco.ToString() + ")";
chunk13= "Chunk (" + (xco + chunkWidth * -2).ToString() + ", " + yco.ToString() + ", " + (zco * -1).ToString() + ")";
chunk14= "Chunk (" + (xco + chunkWidth * -2).ToString() + ", " + yco.ToString() + ", " + (zco + -2 * chunkWidth).ToString() + ")";
chunk15= "Chunk (" + (xco + chunkWidth * -1).ToString() + ", " + yco.ToString() + ", " + (zco + 2 * chunkWidth).ToString() + ")";
chunk16= "Chunk (" + (xco + chunkWidth * -1).ToString() + ", " + yco.ToString() + ", " + (zco + -2 * chunkWidth).ToString() + ")";
chunk17= "Chunk (" + xco.ToString() + ", " + yco.ToString() + ", " + (zco + 2 * chunkWidth).ToString() + ")";
chunk18= "Chunk (" + xco.ToString() + ", " + yco.ToString() + ", " + (zco + -2 * chunkWidth).ToString() + ")";
chunk19= "Chunk (" + (xco + chunkWidth).ToString() + ", " + yco.ToString() + ", " + (zco + 2 * chunkWidth).ToString() + ")";
chunk20= "Chunk (" + (xco + chunkWidth).ToString() + ", " + yco.ToString() + ", " + (zco + -2 * chunkWidth).ToString() + ")";
chunk21= "Chunk (" + (xco + 2 * chunkWidth).ToString() + ", " + yco.ToString() + ", " + (zco + 2 * chunkWidth).ToString() + ")";
chunk22= "Chunk (" + (xco + 2 * chunkWidth).ToString() + ", " + yco.ToString() + ", " + (zco + chunkWidth).ToString() + ")";
chunk23= "Chunk (" + (xco + 2 * chunkWidth).ToString() + ", " + yco.ToString() + ", " + zco.ToString() + ")";
chunk24= "Chunk (" + (xco + 2 * chunkWidth).ToString() + ", " + yco.ToString() + ", " + (zco * -1).ToString() + ")";
chunk25= "Chunk (" + (xco + 2 * chunkWidth).ToString() + ", " + yco.ToString() + ", " + (zco + -2 * chunkWidth).ToString() + ")";
var chunksInScene : GameObject[] = FindObjectsOfType(GameObject) as GameObject[];
for (var i = 0; i < chunksInScene.length ; i++) {
if(chunksInScene[i].name.Substring(0,5) == "Chunk" || chunksInScene[i].name.Substring(0,5) == "_TERR" || chunksInScene[i].name.Substring(0,5) == "ACTIV") {
if(chunksInScene[i].tag != "Player") {
var oldXco = chunksInScene[i].transform.position.x;
var oldYco = chunksInScene[i].transform.position.y;
var oldZco = chunksInScene[i].transform.position.z;
oldChunk1 = "Chunk (" + oldXco.ToString() + ", " + oldYco.ToString() + ", " + oldZco.ToString() + ")";
oldChunk2 = "Chunk (" + (oldXco + chunkWidth).ToString() + ", " + oldYco.ToString() + ", " + (oldZco+chunkWidth).ToString() + ")";
oldChunk3 = "Chunk (" + (oldXco + chunkWidth).ToString() + ", " + oldYco.ToString() + ", " + oldZco.ToString() + ")";
oldChunk4 = "Chunk (" + (oldXco + chunkWidth).ToString() + ", " + oldYco.ToString() + ", " + (oldZco * -1).ToString() + ")";
oldChunk5 = "Chunk (" + (oldXco + chunkWidth * -1).ToString() + ", " + oldYco.ToString() + ", " + (oldZco+chunkWidth).ToString() + ")";
oldChunk6 = "Chunk (" + (oldXco + chunkWidth * -1).ToString() + ", " + oldYco.ToString() + ", " + oldZco.ToString() + ")";
oldChunk7 = "Chunk (" + (oldXco + chunkWidth * -1).ToString() + ", " + oldYco.ToString() + ", " + (oldZco * -1).ToString() + ")";
oldChunk8 = "Chunk (" + oldXco.ToString() + ", " + oldYco.ToString() + ", " + (oldZco + chunkWidth).ToString() + ")";
oldChunk9 = "Chunk (" + oldXco.ToString() + ", " + oldYco.ToString() + ", " + (oldZco * -1).ToString() + ")";
oldChunk10= "Chunk (" + (oldXco + chunkWidth * -2).ToString() + ", " + oldYco.ToString() + ", " + (oldZco + 2 * chunkWidth).ToString() + ")";
oldChunk11= "Chunk (" + (oldXco + chunkWidth * -2).ToString() + ", " + oldYco.ToString() + ", " + (oldZco + chunkWidth).ToString() + ")";
oldChunk12= "Chunk (" + (oldXco + chunkWidth * -2).ToString() + ", " + oldYco.ToString() + ", " + oldZco.ToString() + ")";
oldChunk13= "Chunk (" + (oldXco + chunkWidth * -2).ToString() + ", " + oldYco.ToString() + ", " + (oldZco * -1).ToString() + ")";
oldChunk14= "Chunk (" + (oldXco + chunkWidth * -2).ToString() + ", " + oldYco.ToString() + ", " + (oldZco + -2 * chunkWidth).ToString() + ")";
oldChunk15= "Chunk (" + (oldXco + chunkWidth * -1).ToString() + ", " + oldYco.ToString() + ", " + (oldZco + 2 * chunkWidth).ToString() + ")";
oldChunk16= "Chunk (" + (oldXco + chunkWidth * -1).ToString() + ", " + oldYco.ToString() + ", " + (oldZco + -2 * chunkWidth).ToString() + ")";
oldChunk17= "Chunk (" + oldXco.ToString() + ", " + oldYco.ToString() + ", " + (oldZco + 2 * chunkWidth).ToString() + ")";
oldChunk18= "Chunk (" + oldXco.ToString() + ", " + oldYco.ToString() + ", " + (oldZco + -2 * chunkWidth).ToString() + ")";
oldChunk19= "Chunk (" + (oldXco + chunkWidth).ToString() + ", " + oldYco.ToString() + ", " + (oldZco + 2 * chunkWidth).ToString() + ")";
oldChunk20= "Chunk (" + (oldXco + chunkWidth).ToString() + ", " + oldYco.ToString() + ", " + (oldZco + -2 * chunkWidth).ToString() + ")";
oldChunk21= "Chunk (" + (oldXco + 2 * chunkWidth).ToString() + ", " + oldYco.ToString() + ", " + (oldZco + 2 * chunkWidth).ToString() + ")";
oldChunk22= "Chunk (" + (oldXco + 2 * chunkWidth).ToString() + ", " + oldYco.ToString() + ", " + (oldZco + chunkWidth).ToString() + ")";
oldChunk23= "Chunk (" + (oldXco + 2 * chunkWidth).ToString() + ", " + oldYco.ToString() + ", " + oldZco.ToString() + ")";
oldChunk24= "Chunk (" + (oldXco + 2 * chunkWidth).ToString() + ", " + oldYco.ToString() + ", " + (oldZco * -1).ToString() + ")";
oldChunk25= "Chunk (" + (oldXco + 2 * chunkWidth).ToString() + ", " + oldYco.ToString() + ", " + (oldZco + -2 * chunkWidth).ToString() + ")";
}
}
}
if(oldChunk1.Equals(chunk1)){load1 = false;}
if(oldChunk2.Equals(chunk2)){load2 = false;}
if(oldChunk3.Equals(chunk3)){load3 = false;}
if(oldChunk4.Equals(chunk4)){load4 = false;}
if(oldChunk5.Equals(chunk5)){load5 = false;}
if(oldChunk6.Equals(chunk6)){load6 = false;}
if(oldChunk7.Equals(chunk7)){load7 = false;}
if(oldChunk8.Equals(chunk8)){load8 = false;}
if(oldChunk9.Equals(chunk9)){load9 = false;}
if(oldChunk10.Equals(chunk10)){load10 = false;}
if(oldChunk11.Equals(chunk11)){load11 = false;}
if(oldChunk12.Equals(chunk12)){load12 = false;}
if(oldChunk13.Equals(chunk13)){load13 = false;}
if(oldChunk14.Equals(chunk14)){load14 = false;}
if(oldChunk15.Equals(chunk15)){load15 = false;}
if(oldChunk16.Equals(chunk16)){load16 = false;}
if(oldChunk17.Equals(chunk17)){load17 = false;}
if(oldChunk18.Equals(chunk18)){load18 = false;}
if(oldChunk19.Equals(chunk19)){load19 = false;}
if(oldChunk20.Equals(chunk20)){load20 = false;}
if(oldChunk21.Equals(chunk21)){load21 = false;}
if(oldChunk22.Equals(chunk22)){load22 = false;}
if(oldChunk23.Equals(chunk23)){load23 = false;}
if(oldChunk24.Equals(chunk24)){load24 = false;}
if(oldChunk25.Equals(chunk25)){load25 = false;}
Debug.Log("1" + chunk1 + oldChunk1 + load1);
Debug.Log("2" + chunk2 + oldChunk2 + load2);
Debug.Log("3" + chunk3 + oldChunk3 + load3);
Debug.Log("4" + chunk4 + oldChunk4 + load4);
Debug.Log("5" + chunk5 + oldChunk5 + load5);
Debug.Log("6" + chunk6 + oldChunk6 + load6);
Debug.Log("7" + chunk7 + oldChunk7 + load7);
Debug.Log("8" + chunk8 + oldChunk8 + load8);
Debug.Log("9" + chunk9 + oldChunk9 + load9);
Debug.Log("10" + chunk10 + oldChunk10 + load10);
Debug.Log("11" + chunk11 + oldChunk11 + load11);
Debug.Log("12" + chunk12 + oldChunk12 + load12);
Debug.Log("13" + chunk13 + oldChunk13 + load13);
Debug.Log("14" + chunk14 + oldChunk14 + load14);
Debug.Log("15" + chunk15 + oldChunk15 + load15);
Debug.Log("16" + chunk16 + oldChunk16 + load16);
Debug.Log("17" + chunk17 + oldChunk17 + load17);
Debug.Log("18" + chunk18 + oldChunk18 + load18);
Debug.Log("19" + chunk19 + oldChunk19 + load19);
Debug.Log("20" + chunk20 + oldChunk20 + load20);
Debug.Log("21" + chunk21 + oldChunk21 + load21);
Debug.Log("22" + chunk22 + oldChunk22 + load22);
Debug.Log("23" + chunk23 + oldChunk23 + load23);
Debug.Log("24" + chunk24 + oldChunk24 + load24);
Debug.Log("25" + chunk25 + oldChunk25 + load25);
/*
//V1
if(load1){Instantiate(terrains[Random.Range(0,terrains.length)], Vector3(xco, yco, zco), Quaternion.identity);}
//V2
if(load2){Instantiate(terrains[Random.Range(0,terrains.length)], Vector3(xco + chunkWidth, yco, zco + chunkWidth), Quaternion.identity);}
if(load3){Instantiate(terrains[Random.Range(0,terrains.length)], Vector3(xco + chunkWidth, yco, zco), Quaternion.identity);}
if(load4){Instantiate(terrains[Random.Range(0,terrains.length)], Vector3(xco + chunkWidth, yco, zco * -1), Quaternion.identity);}
if(load5){Instantiate(terrains[Random.Range(0,terrains.length)], Vector3(xco + chunkWidth * -1, yco, zco + chunkWidth), Quaternion.identity);}
if(load6){Instantiate(terrains[Random.Range(0,terrains.length)], Vector3(xco + chunkWidth * -1, yco, zco), Quaternion.identity);}
if(load7){Instantiate(terrains[Random.Range(0,terrains.length)], Vector3(xco + chunkWidth * -1, yco, zco * -1), Quaternion.identity);}
if(load8){Instantiate(terrains[Random.Range(0,terrains.length)], Vector3(xco, yco, zco + chunkWidth), Quaternion.identity);}
if(load9){Instantiate(terrains[Random.Range(0,terrains.length)], Vector3(xco, yco, zco * -1), Quaternion.identity);}
//V3
if(load10){Instantiate(terrains[Random.Range(0,terrains.length)], Vector3(xco + chunkWidth * -2, yco, zco + 2 * chunkWidth), Quaternion.identity);}
if(load11){Instantiate(terrains[Random.Range(0,terrains.length)], Vector3(xco + chunkWidth * -2, yco, zco + chunkWidth), Quaternion.identity);}
if(load12){Instantiate(terrains[Random.Range(0,terrains.length)], Vector3(xco + chunkWidth * -2, yco, zco), Quaternion.identity);}
if(load13){Instantiate(terrains[Random.Range(0,terrains.length)], Vector3(xco + chunkWidth * -2, yco, zco * -1), Quaternion.identity);}
if(load14){Instantiate(terrains[Random.Range(0,terrains.length)], Vector3(xco + chunkWidth * -2, yco, zco + -2 * chunkWidth), Quaternion.identity);}
if(load15){Instantiate(terrains[Random.Range(0,terrains.length)], Vector3(xco + chunkWidth * -1, yco, zco + 2 * chunkWidth), Quaternion.identity);}
if(load16){Instantiate(terrains[Random.Range(0,terrains.length)], Vector3(xco + chunkWidth * -1, yco, zco + -2 * chunkWidth), Quaternion.identity);}
if(load17){Instantiate(terrains[Random.Range(0,terrains.length)], Vector3(xco, yco, zco + 2 * chunkWidth), Quaternion.identity);}
if(load18){Instantiate(terrains[Random.Range(0,terrains.length)], Vector3(xco, yco, zco + -2 * chunkWidth), Quaternion.identity);}
if(load19){Instantiate(terrains[Random.Range(0,terrains.length)], Vector3(xco + chunkWidth, yco, zco + 2 * chunkWidth), Quaternion.identity);}
if(load20){Instantiate(terrains[Random.Range(0,terrains.length)], Vector3(xco + chunkWidth, yco, zco + -2 * chunkWidth), Quaternion.identity);}
if(load21){Instantiate(terrains[Random.Range(0,terrains.length)], Vector3(xco + 2 * chunkWidth, yco, zco + 2 * chunkWidth), Quaternion.identity);}
if(load22){Instantiate(terrains[Random.Range(0,terrains.length)], Vector3(xco + 2 * chunkWidth, yco, zco + chunkWidth), Quaternion.identity);}
if(load23){Instantiate(terrains[Random.Range(0,terrains.length)], Vector3(xco + 2 * chunkWidth, yco, zco), Quaternion.identity);}
if(load24){Instantiate(terrains[Random.Range(0,terrains.length)], Vector3(xco + 2 * chunkWidth, yco, zco * -1), Quaternion.identity);}
if(load25){Instantiate(terrains[Random.Range(0,terrains.length)], Vector3(xco + 2 * chunkWidth, yco, zco + -2 * chunkWidth), Quaternion.identity);}
*/
}
最佳答案
http://answers.unity3d.com/questions/177931/tutorial-minecraft-chunks.html
这是指向 UnityAnswers 的链接,其中包含有关如何在 Unity3D 中分块的教程。您可以在那里查看更多信息,并希望能找到您问题的答案。
关于algorithm - Unity3d 地形生成实例化到很多预制件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24587841/
我在一本书(Interview Question)中读到这个问题,想在这里详细讨论这个问题。请点亮它。 问题如下:- 隐私和匿名化 马萨诸塞州集团保险委员会早在 1990 年代中期就有一个绝妙的主意
我最近接受了一次面试,面试官给了我一些伪代码并提出了相关问题。不幸的是,由于准备不足,我无法回答他的问题。由于时间关系,我无法向他请教该问题的解决方案。如果有人可以指导我并帮助我理解问题,以便我可以改
这是我的代码 public int getDist(Node root, int value) { if (root == null && value !=0) return
就效率而言,Strassen 算法应该停止递归并应用乘法的最佳交叉点是多少? 我知道这与具体的实现和硬件密切相关,但对于一般情况应该有某种指南或某人的一些实验结果。 在网上搜索了一下,问了一些他们认为
我想学习一些关于分布式算法的知识,所以我正在寻找任何书籍推荐。我对理论书籍更感兴趣,因为实现只是个人喜好问题(我可能会使用 erlang(或 c#))。但另一方面,我不想对算法进行原始的数学分析。只是
我想知道你们中有多少人实现了计算机科学的“ classical algorithms ”,例如 Dijkstra's algorithm或现实世界中的数据结构(例如二叉搜索树),而不是学术项目? 当有
我正在解决旧编程竞赛中的一些示例问题。在这个问题中,我们得到了我们有多少调酒师以及他们知道哪些食谱的信息。制作每杯鸡尾酒需要 1 分钟,我们需要使用所有调酒师计算是否可以在 5 分钟内完成订单。 解决
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 8 年前。 Improve
我开始学习 Nodejs,但我被困在中间的某个地方。我从 npm 安装了一个新库,它是 express -jwt ,它在运行后显示某种错误。附上代码和错误日志,请帮助我! const jwt = re
我有一个证书,其中签名算法显示“sha256rsa”,但指纹算法显示“sha1”。我的证书 SHA1/SHA2 的标识是什么? 谢谢! 最佳答案 TL;TR:签名和指纹是完全不同的东西。对于证书的强度
我目前在我的大学学习数据结构类(class),并且在之前的类(class)中做过一些算法分析,但这是我在之前的类(class)中遇到的最困难的部分。我们现在将在我的数据结构类(class)中学习算法分
有一个由 N 个 1x1 方格组成的区域,并且该区域的所有部分都是相连的(没有任何方格无法到达的方格)。 下面是一些面积的例子。 我想在这个区域中选择一些方块,并且两个相邻的方块不能一起选择(对角接触
我有一些多边形形状的点列表,我想将其包含在我页面上的 Google map 中。 我已经从原始数据中删除了尽可能多的不必要的多边形,现在我剩下大约 12 个,但它们非常详细以至于导致了问题。现在我的文
我目前正在实现 Marching Squares用于计算等高线曲线,我对此处提到的位移位的使用有疑问 Compose the 4 bits at the corners of the cell to
我正在尝试针对给定算法的约束满足问题实现此递归回溯函数: function BACKTRACKING-SEARCH(csp) returns solution/failure return R
是否有包含反函数的库? 作为项目的一部分,我目前正在研究测向算法。我正在使用巴特利特相关性。在 Bartlett 相关性中,我需要将已经是 3 次矩阵乘法(包括 Hermitian 转置)的分子除以作
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 8 年前。 Improve
问题的链接是UVA - 1394 : And There Was One . 朴素的算法是扫描整个数组并在每次迭代中标记第 k 个元素并在最后停止:这需要 O(n^2) 时间。 我搜索了一种替代算法并
COM 中创建 GUID 的函数 (CoCreateGUID) 使用“分散唯一性算法”,但我的问题是,它是什么? 谁能解释一下? 最佳答案 一种生成 ID 的方法,该 ID 具有一定的唯一性保证,而不
在做一个项目时我遇到了这个问题,我将在这个问题的实际领域之外重新措辞(我想我可以谈论烟花的口径和形状,但这会使理解更加复杂).我正在寻找一种(可能是近似的)算法来解决它。 我有 n 个不同大小的容器,
我是一名优秀的程序员,十分优秀!