Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 在数组中实例化下一个和上一个预置的问题(Unity 3D)_Arrays_Unity3d_Reverse_Instantiation_Destroy - Fatal编程技术网

Arrays 在数组中实例化下一个和上一个预置的问题(Unity 3D)

Arrays 在数组中实例化下一个和上一个预置的问题(Unity 3D),arrays,unity3d,reverse,instantiation,destroy,Arrays,Unity3d,Reverse,Instantiation,Destroy,我正在开发一个简单的虚拟漫游应用程序,在这个应用程序中,我将一个摄像头放在一个球体内,用360度的照片映射球体,然后单击箭头对象(精灵)向前和向后导航。下面的脚本在销毁当前球体的同时实例化阵列中的下一个球体(用下一张360照片映射),模拟应用程序中的向前移动。它似乎工作正常 public void Update() { if(Input.GetMouseButtonDown(0)) { 雷卡斯特击中; Ray-Ray=Camera.main.screenpointoray(输入.鼠标位置); 如

我正在开发一个简单的虚拟漫游应用程序,在这个应用程序中,我将一个摄像头放在一个球体内,用360度的照片映射球体,然后单击箭头对象(精灵)向前和向后导航。下面的脚本在销毁当前球体的同时实例化阵列中的下一个球体(用下一张360照片映射),模拟应用程序中的向前移动。它似乎工作正常

public void Update()
{
if(Input.GetMouseButtonDown(0))
{
雷卡斯特击中;
Ray-Ray=Camera.main.screenpointoray(输入.鼠标位置);
如果(物理.光线投射(光线,出击))
{
if(hit.collider!=null)
{
销毁(当前对象);
currentIndex++;
currentIndex=currentIndex>=球体。长度?0:currentIndex;
currentObject=实例化(球体[currentIndex]);
}
}
}
}
我的问题是如何颠倒数组的顺序,以便单击“后退”箭头来实例化数组中先前的预置

我认为这是一个简单的as
currentIndex--但我无法让它工作。非常感谢您的帮助


只需使用

currentIndex--;
如果(currentIndex<0)currentIndex=Spheres.Length-1;
您还希望对
++
方式执行相同的操作,顺便说一句:

currentIndex++;
如果(currentIndex>Spheres.Length-1)currentIndex=0;
注意
-1
!您的索引不应达到
Spehres.Length
,因为索引基于
0
。因此,数组中的最后一个元素始终具有
index=array.Length-1


一个稍微简单一点的方法是以积极的方式进行环绕,顺便说一句

currentIndex=(currentIndex+1)%Spheres.Length;

只需使用

currentIndex--;
如果(currentIndex<0)currentIndex=Spheres.Length-1;
您还希望对
++
方式执行相同的操作,顺便说一句:

currentIndex++;
如果(currentIndex>Spheres.Length-1)currentIndex=0;
注意
-1
!您的索引不应达到
Spehres.Length
,因为索引基于
0
。因此,数组中的最后一个元素始终具有
index=array.Length-1


一个稍微简单一点的方法是以积极的方式进行环绕,顺便说一句

currentIndex=(currentIndex+1)%Spheres.Length;

谢谢您的帮助。奇怪的是,我遇到了一个问题,通过单击一个箭头,我似乎同时触发了两个脚本。我用引用适当标记的脚本标记了每个箭头,但它仍然同时执行这两个箭头。这是raycast的问题吗?我在原来的帖子中添加了一张图片,这样你就可以看到我的布局了。我刚刚调试了我的光线投射,出于某种原因,它会同时触发两个箭头,无论我点击哪个箭头。。。例如,您应该将代码放入
OnMouseDown
,而不是
Update
OnMouseDown
仅在对象上调用,鼠标实际上在上方,没有看到您的帖子。我试试看。谢谢你。奇怪的是,我遇到了一个问题,通过单击一个箭头,我似乎同时触发了两个脚本。我用引用适当标记的脚本标记了每个箭头,但它仍然同时执行这两个箭头。这是raycast的问题吗?我在原来的帖子中添加了一张图片,这样你就可以看到我的布局了。我刚刚调试了我的光线投射,出于某种原因,它会同时触发两个箭头,无论我点击哪个箭头。。。例如,您应该将代码放入
OnMouseDown
,而不是
Update
OnMouseDown
仅在对象上调用,鼠标实际上在上方,没有看到您的帖子。我试试看。