Unity - 从阵列中获取随机天空盒

     2023-03-30     234

关键词:

【中文标题】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中怎样设置动态天空盒,让天空盒上的云动起来

参考技术A可以使用UniSky插件,百度UniSky入门资料。UniSky可以用代码控制天空盒随游戏时间的变化而变化,设定太阳的颜色等。本回答被提问者采纳 查看详情

小功能⭐️unity动态更换天空盒旋转天空盒(代码片段)

...Box类型的的材质球。放入即可。3、通过代码,你便可获取到SkyBox组件,便可动态更换天空盒了。2️⃣方法2🟧旋转天空盒该功能不按 查看详情

怎么使用深空盒子材质

Unity中,天空盒是使用天空盒着色器的一种材质。有关可用的天空盒着色器的信息,请参阅天空盒着色器。渲染管线兼容性内置渲染管线和通用渲染管线(URP)都专门使用天空盒来渲染天空。这些天空盒是使用天空盒着色器的材质... 查看详情

Unity 自定义天空盒,如 Unity 天空盒

】Unity自定义天空盒,如Unity天空盒【英文标题】:UnitycustomskyboxlikeUnityskybox【发布时间】:2017-09-1318:29:23【问题描述】:我正在尝试为360图像做一个自定义天空盒,它有2个带有淡入淡出的纹理,我需要它来响应旋转值,如UnitySky... 查看详情

unity实战项目☀️|unity实现天空盒轮播系列切换(代码片段)

...面简单写过两篇文章介绍了怎样在Unity中和在代码中切换天空盒切换天空盒还是非常简单的那这篇文章就写了一个简单的实例做一个稍微花哨一点的天空盒切换实例!🍉天空盒点击轮播切换先来看一下实现的一个效果ÿ... 查看详情

unity中控制天空盒移动的解决办法(代码片段)

为了使天空盒更真实,需要控制天空盒动态旋转。网上找到的方法是:floatnum=RenderSettings.skybox.GetFloat("_Rotation");RenderSettings.skybox.SetFloat("_Rotation",num+0.05f);但在我的工程中会报错(我的unity版本5.5.5f1):我的天空盒是Cubemap型的,挂... 查看详情

2022-02-15u3d全栈班007-制作设置天空盒资源

文章目录前言一、制作设置天空盒资源1.下载资源2.创建材质3.Material赋值贴图4.渲染场景5.渲染组件6.渲染组件总结前言在使用Unity开发游戏的时候,设置天空盒肯定是必不可少的。如果使用3D建模,建出天空盒放在场景中会比较麻... 查看详情

unity切换天空盒地面倒影

参考技术Amskybox写一个程序性的天空盒子切换天空盒。地面倒影可以用vray平面或者做个带斜面的反光板,这样效果很好,地面材质要有折射在有倒影的物体上面增加反射效果。 查看详情

关于unity中天空盒的使用

天空盒是一个盒子,一个正方形的盒子。其实本身也是一种shader,需要材质球做载体。1:一个场景是由6幅正方形的纹理图无缝拼接而成,在视野看来位于真实的视野一样;2:两种天空盒:  场景天空盒Window->Lighting->Scene->Skybox... 查看详情

unity3d怎么在脚本里面更改天空盒

...好的太空盒拖进数组中哦~(其实用Resource.load<>()去获取最好了~但这里只是展示核心代码)本回答被提问者采纳 查看详情

unity2019hdrp管线制作天空盒

参考技术Ahttps://www.pianshen.com/article/99051551622/这里修改为原图片(可以是原来的盒子状6面贴图平铺)先导入profile然后在右边直接设置cube之后apply。 查看详情

unity3d旋转天空盒的方法

天空盒是不能旋转的,但我们可以旋转摄像机来达到天空盒的旋转效果。实现方法如下:1)我们创建一个摄像机名为SkyboxCamera2)主摄像机MainCamera的ClearFlags设置为Don'tClear3)SkyboxCamera的CullingMask设置为Nothing,然后Depth一定要... 查看详情

unity3d灵巧小知识点☀️|unity中使用代码切换天空盒(代码片段)

Unity小科普老规矩,先介绍一下Unity的科普小知识:Unity是实时3D互动内容创作和运营平台。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助Unity将创意变成现实。Unity平台提供一整套完善的软件解... 查看详情

unity3d灵巧小知识点☀️|unity中怎样切换天空盒背景(代码片段)

Unity小科普老规矩,先介绍一下Unity的科普小知识:Unity是实时3D互动内容创作和运营平台。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助Unity将创意变成现实。Unity平台提供一整套完善的软件解... 查看详情

关于unity中如何代码动态修改天空盒

在Unity中动态修改天空盒有两种方法:一、为每个Texture建立天空盒材质球,需要更换时直接将对应材质球作为天空盒,缺点是建立的材质球太多 privatevoidChangeSkybox(MaterialnewSkybox){RenderSettings.skybox=newSkybox;} 二、只创建一个... 查看详情

unity3d旋转天空盒的方法

天空盒是不能旋转的,但我们可以旋转摄像机来达到天空盒的旋转效果。实现方法如下:1)我们创建一个摄像机名为SkyboxCamera2)主摄像机MainCamera的ClearFlags设置为Don'tClear3)SkyboxCamera的CullingMask设置为Nothing,然后Depth一定要... 查看详情

unity学习指南

...文文档非官方技术文档免费资源下载:unityAssetStore三天空盒案例:视频地址四粒子案例echarts接入到unity中使用Unity中实现拖尾效果Unity粒子特效课程作业导入自己下载的模型,通过不同方位观察。完成视频案例,注意以... 查看详情

unity天空盒卡通渲染中如何实现云的消散效果

...渲染之后,接下来就是考虑云渲染了。因为我想做的天空盒本身是想跟着这位大佬Unity卡通渲染程序化天空盒-知乎里叙述的进程来的,里面云实现的是原神里的云,原神又是在崩3的基础上加上了消散效果。但现在能... 查看详情