unity怎么实现到了边缘切换到下一个场景?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity怎么实现到了边缘切换到下一个场景?相关的知识,希望对你有一定的参考价值。
unity2D如何实现到了一个特定位置切换到下一个场景?
使用Collider碰撞体检测(OnCollisionEnter事件函数挺好的)
判断碰撞体名称,得知具体要切换到哪个场景
用 SceneManager.LoadSceneAsync(场景名称, LoadSceneMode.Additive);异步附加式加载新的场景
下面是一个例子:
void OnCollisionEnter(Collision collision)
switch(collision.name)
case "Gate"://碰到对象 大门
SceneManager.LoadSceneAsync("Outdoor", LoadSceneMode.Additive);
//加载场景:户外
break;
`
case "RoomDoor"://碰到对象 房门
SceneManager.LoadSceneAsync("Room", LoadSceneMode.Additive);
//加载场景:房间
break;
`
//这里靠你的能量可以继续写下去啦
//注:上述使用异步附加式场景加载,可以保证到达下一个场景,加载下一个场景的同时,上一个场景的物体都还在
//如果有需要,你可以用SceneManager.LoadSceneAsync(场景名称);异步覆盖式加载
//同步加载你可以自己搜,但真没什么意思
参考技术A 可以考虑在物体上加一个射线检测方法,当射线返回距离足够短的时候,切换到下一个场景即可Unity 实战项目 ☀️| Unity实现 天空盒 轮播系列切换
📢前言
前面简单写过两篇文章介绍了怎样 在Unity中
和 在代码中切换
天空盒
切换天空盒还是非常简单的
那这篇文章就写了一个简单的实例做一个稍微花哨一点的 天空盒
切换实例!
🍉天空盒 点击 轮播切换
先来看一下实现的一个效果,以防没能看明白我说的意思
因为在场景中想要实现一个可以随时切换天空盒的效果,所以就想出来这么一个简单的办法
通过在场景中显示一些个带有自身天空盒材质的小球,然后点击他们就可以切换天空盒啦!
下面说一下制作步骤,很简单的一学就会!
🏳️🌈第一步:简单搭建一个场景
先来在场景搭建一个场景
放上一个平面和四个小圆球
然后找到我们的 天空盒材质球
和 天空盒的图片
,直接拖到小球上即可!
这样小球就有颜色了
🏳️🌈第二步:通过代码实现点击小球后切换天空盒
这一步的代码也很简单,我们之前的文章中也讲过如何通过代码切换天空盒
所以这里直接上代码
public class skyDemo1 : MonoBehaviour,IPointerDownHandler
{
public Material skyMaterial;//天空盒材质
//点击小球的回调
public void OnPointerDown(PointerEventData eventData)
{
//切换天空盒
RenderSettings.skybox = skyMaterial;
}
}
然后我们把该脚本挂在到每个小球身上,并把自己的天空盒材质
添加上去
如下所示:
这个时候我们点击每个小球就可以切换天空盒啦!
🏳️🌈第三步:让小球旋转起来
这一步很简单啦,在Unity中实现旋转的方法有很多种,这里就不多说了
这里使用Unity自带的API:transform.RotateAround(Vector3,Vector3,float);
- 第一个参数:旋转的中心点
- 第二个参数:中心点的某个轴
- 第三个参数:旋转的速度
完整代码如下:
using UnityEngine;
using UnityEngine.EventSystems;
public class skyDemo1 : MonoBehaviour,IPointerDownHandler
{
public GameObject skyCenter;
public Material skyMaterial;//天空盒材质
public void OnPointerDown(PointerEventData eventData)
{
//切换天空盒
RenderSettings.skybox = skyMaterial;
}
void Update()
{
Revolution();
}
public void Revolution()
{
//绕着某个中心点 的某一个轴,按照一个速度一直旋转
transform.RotateAround(skyCenter.transform.position, skyCenter.transform.up, Time.deltaTime * 50);
}
}
实现效果如下:
💬总结
一个简单的切换天空盒
的效果就实现啦~
是不是很简单呢,如果你有更好的创意也可以给我提提建议哈
我也想多一些更好的创意!!!
如果没有合适的天空盒资源
,可以下载我文章中显示的这些个天空盒资源
以上是关于unity怎么实现到了边缘切换到下一个场景?的主要内容,如果未能解决你的问题,请参考以下文章