Unity - 从阵列中获取随机天空盒
Posted
技术标签:
【中文标题】Unity - 从阵列中获取随机天空盒【英文标题】:Unity - Get random Skybox out of array 【发布时间】:2016-03-06 18:24:51 【问题描述】:对于学校任务,我必须制作一个基本的视频游戏。 我正在尝试制作太空游戏的基本版本。
我想要一个包含多个天空盒的数组,并且在启动游戏时,我希望游戏从数组中随机选择一个天空盒。这样你就会有一种感觉,你每次都在不同的重生点。
谁能帮助我?我一直在谷歌上寻找,但我找不到任何有用的东西。
天空盒位于一个名为:
的文件夹中 'Assets/SkyBox Volume 2/DeepSpaceBlue' 文件名 = DSB 'Assets/SkyBox Volume 2/DeepSpaceGreen' 文件名 = DSG ...这是我当前的代码,其中包含错误。
编辑
using UnityEngine;
using System.Collections;
public class RandomSkybox : MonoBehaviour
public Material[] materials;
// Use this for initialization
void Start()
skyBoxMaterial = materials[Random.Range(0, materials.length)];
RenderSettings.skybox = skyBoxMaterial;
// Update is called once per frame
void Update()
错误:
Severity Code Description Project File Line Suppression State
Error CS0103 The name 'skyBoxMaterial' does not exist in the current context SpaceRaiders.CSharp D:\Documenten\Unity\SpaceRaiders\Assets\Scripts\Space\RandomSkybox.cs 10 Active
Error CS1061 'Material[]' does not contain a definition for 'length' and no extension method 'length' accepting a first argument of type 'Material[]' could be found (are you missing a using directive or an assembly reference?) SpaceRaiders.CSharp D:\Documenten\Unity\SpaceRaiders\Assets\Scripts\Space\RandomSkybox.cs 10 Active
Error CS0103 The name 'skyBoxMaterial' does not exist in the current context SpaceRaiders.CSharp D:\Documenten\Unity\SpaceRaiders\Assets\Scripts\Space\RandomSkybox.cs 11 Active
【问题讨论】:
看这个:answers.unity3d.com/questions/541258/… @FᴀʀʜᴀɴAɴᴀᴍ .. OP的问题是他忘了拖进去 @JoeBlow 是的.. 如果他用代码填充它,链接会很有帮助.. 【参考方案1】:public Skybox[] skyBoxes;
你必须
将项目拖到数组中
就这么简单。在 Inspector 中,将长度设置为“5”,然后将您的五个项目拖入其中。仅此而已。
也在你发布的最新版本中,
skyBoxMaterial = materials[Random.Range(0, materials.length)];
您忘记声明变量。就这么简单。
Material skyBoxMaterial;
skyBoxMaterial = materials[Random.Range(0, materials.length)];
“长度”显然是“长度”。不要忘记 List 是 .Count
而不是 .Length
。
【讨论】:
由于代码错误,无法正常工作,我正在编辑我的帖子 我现在仍然收到此错误,感谢您的帮助!严重性代码描述项目文件行抑制状态错误CS1061“材料[]”不包含“长度”的定义,并且找不到接受“材料[]”类型的第一个参数的扩展方法“长度”(您是否缺少使用指令还是程序集引用?) SpaceRaiders.CSharp D:\Documenten\Unity\SpaceRaiders\Assets\Scripts\Space\RandomSkybox.cs 11 Active以上是关于Unity - 从阵列中获取随机天空盒的主要内容,如果未能解决你的问题,请参考以下文章