哆啦A梦的任意门可以看到另一头的世界
我们在3D游戏中也可以加上这个环节 作为加载新场景的过度
首先给出我简单搭建的效果图

正面

unity 传送门depthmas unity简单传送门_unity 传送门depthmas

反面

unity 传送门depthmas unity简单传送门_unity 传送门depthmas_02

门的另一端

unity 传送门depthmas unity简单传送门_unity 传送门depthmas_03

因为参数等的一些原因 看起来比较粗糙
大家可以自己调整一些参数达到想要的效果

实现过程

首先我们导入一个场景和一个具有开门和关门的动画

任意门最核心的就是Render Texture的使用了

unity 传送门depthmas unity简单传送门_unity 传送门depthmas_04


首先创建一个 然后在传送门另一端的场景中找一个合适的位置

添加一个摄像机

给摄像机赋值

unity 传送门depthmas unity简单传送门_游戏开发_05


里边的Door就是刚刚创建的Render texture


然后对于开门和关门(门的动画)我就不写了这部分也不难 就是动画的基础
之后再写一个摄像机(地图另一端)相对玩家的位置的脚本

public GameObject door1;//传送门
    public GameObject door2;//传送门另一端场景的位置
    public GameObject player;//第一人称玩家
    private Vector3 offset;
    private void Update()
    {
        offset = player.transform.position - door1.transform.position;
        this.transform.position = door2.transform.position + offset;
    }

挂在地图另一端的摄像机上 然后给其中参数赋值
任意门和另一端的地形在同一个场景中

然后创建一个Plane 和任意门重合 把刚刚创建的Render Texture拖上去
很神奇的发现那个摄像机的画面出现在了Plane上

这样我们的简单的任意门就做好了
剩下的细节需要我们自己去完善 比如摄像机的参数等