【unity】建一个传送门

简单传送门教学

基于达哥的方法做了一个传送门,纪录一下我的学习。达哥视频地址:如何在Unity里制作哆啦a梦任意门效果

1、建一个第一人称控制器FPSController 和一扇门,将它们复制位移(相对位置不能变)
FPSController在unity官方资源包导入,如果你导入有错误可以看我的另一篇文章:unity官方资源包Standard Assets导入错误

2、建两个虚拟摄像机:Cinemachine -> Create Virtual Camera,分别移到FPSController下,并设置Transitions -> Body、Aim 为 Do nothing,两个虚拟摄像机CM vcam1与CM vcam2的位置、方向设置与FPS1摄像机、FPS2摄像机相同

3、将Main Camera添加CinemachineBrain,设置Default Blend为Cut(直接场景切换),设置位置与FPS1摄像机相同

4、FPSController1的Tag选择Player

5、在文件里Create -> Render Texture ,建两个,改变Size为1920 * 1080(使分辨率相同)

6、建一个Quad放到门上,另一个门也是。将Quad1、2的Convex和Is Trigger打勾,添加Cinemachine Trigger Action,With Tag选择Player,On Object Enter -> Action选择Activate。将CM vcam2拖到Quad1的Target下,将CM vcam1拖到Quad2的Target下。

7、打开FPS1摄像机,将Render Texture1拖进Target Texture(FPS1摄像机看到的画面都会渲染到Render Texture1上)
打开FPS2摄像机,将Render Texture2拖进Target Texture

8、将Render Texture1拖给Quad2,将Render Texture2拖给Quad1

9、Layer添加Door层,将门和Quad的Layer都选择Door

10、将FPS1摄像机和FPS1摄像机的Culling Mask选项去掉Door(不渲染门)

11、将ScreenCutoutShader.shader和TagChanger.cs
拖入文件里(ScreenCutoutShader.shader文件不是我写的,是国外油管上的大神Brackeys写的,随后我会附在我的资源里,TagChanger.cs是达哥写的),将Quad -> Render Texture -> Shader都改为ScreenCutoutShader(使视角正常),将FPSController 1和FPSController 2都加上TagChanger.cs(切换人物时可以改变FPSController的Tag)

12、,Quad1的On Object Exit -> Event() -> +,将FPSController1拖入Runtime Only,Function选择TagChanger -> UntaggedTagChanger;再+一个,将FPSController2拖入Runtime Only,Function选择TagChanger -> PlayerTagChanger(都是TagChanger.cs里写的函数)

Quad2的On Object Exit -> Event() -> +,将FPSController1拖入Runtime Only,Function选择TagChanger -> PlayerTagChanger;再+一个,将FPSController2拖入Runtime Only,Function选择TagChanger -> UntaggedTagChanger

可以将Game窗口改为和你电脑一样的比例,测试的时候就有传送门的效果了

这个时候运行应该就有一个哆啦A梦一样的传送门效果了,不过这个方法缺陷还有很多,我现在正在学习另一种几乎可以媲美游戏《Portal》的传送门效果的创建方法,有机会写成另一篇文章发出来(咕咕咕)

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值