我用Bolt直接修改开源的元宇宙场景代码

职场   2024-10-10 14:17   北京  

昨天bolt.new更新了新的功能,就是在网址后面输入github的地址,即可直接编译和修改别人的共享代码,于是从github上找了一个开源的元宇宙场景代码进行优化。

原始的源码地址是:

https://github.com/Novarista13/portfolio-with-r3f

我直接打开

https://bolt.new/github.com/Novarista13/portfolio-with-r3f

然后等待几秒就可以直接运行起来。

然后对其中某些比较好的功能代码让AI进行解释。

import { Html } from "@react-three/drei";
const CustomHtml = ({ style, ...props }) => { return ( <Html transform wrapperClass="htmlScreen" zIndexRange={[100, 0]} distanceFactor={3} style={{ cursor: "pointer", ...style, }} occlude="blending" {...props} > {props.children} </Html> );};

代码解释:
  • distanceFactor={3}: 这个属性控制 HTML 内容的缩放。当摄像机距离物体 3 个单位时,HTML 内容会以 1:1 的比例显示。当摄像机靠近时,内容会变大;当摄像机远离时,内容会变小。
  • occlude="blending": 这个属性使得 HTML 内容会在被 3D 对象遮挡时逐渐消失。这创造了一种当你靠近时内容才会出现的效果。
  • zIndexRange={[100, 0]}: 这个属性控制 HTML 内容的 z-index,确保它在正确的层级显示。
  • 这些属性结合起来,创造了一种当摄像机靠近时内容才会清晰可见的效果。当你远离时,内容会变小并可能被其他 3D 对象遮挡,从而实现了"靠近才出现"的效果。

这个场景还有一个优点是当靠近物体的时候,模型才显示出来,然后问了一下AI才知道是控制camera的far熟悉为30了,调大就不会有这种效果,我本来以为是用了LOD技术。
这个场景用的PointerLockControls来控制相机转向,这个在很多场景下,尤其是移动端是不支持的,所以让AI帮我优化一下代码,先改成orbitcontrols,然后再增加鼠标点击功能。
点击右上角部署到服务器,体验一下我改的效果:
https://nimble-raindrop-fc2862.netlify.app/

简单介绍到这里,更多好玩的功能需要自己去探索。
bolt.new 目前还只能运行简单的功能,复杂的工程可能会报错,但对于前端代码应该足够用了。有了这个,之前很多做到一半的项目都可以自动完成了,哈哈哈。

关于作者

做一只爬的最久的乌龟,保持学习保持好奇,即使慢一点,遇到一点困难,只要最后能到达终点,又有什么关系呢。
毕竟人生没有白走的路,每一步都算数。





前端程序设计
专注前端最前沿技术,数据可视化,web3d。偶尔插播生活和艺术。
 最新文章