用户:
YDS尹子查看:21 回复:20 评论:21 创建时间:2021-01-30T15:31:11

使用指南
长按左键即可使用激光束,松开即结束喵
操作指南
步骤:首先放置一个名为"舰载激光炮"的模型,并添加标签"autogun".
其次,随处放一个模型并将其调整到一个合适的大小(这个大小决定了激光束的粗细),并添加标签"laser".
然后,添加以下代码:
const Quattt = new Box3Quaternion(0, 1, 0, 0);
world.onPress(({button,raycast:{hitPosition}}) => {
if (button=='action0'){
world.querySelectorAll(".autogun").forEach(async (e) => {
var direction = hitPosition.sub(e.position);
var orientation = Quattt.rotateY(Math.atan2(direction.z, direction.x));
e.meshOrientation.copy(orientation);
world.querySelectorAll(".laser").forEach((en)=>{
en.meshInvisible=true;
en.position.set(e.position.x,e.position.y+0.9,e.position.z);
en.particleLimit = 1000;
en.particleRate = 1000;
en.particleColor = [new Box3RGBColor(0.2, 0.2, 1), new Box3RGBColor(0.5, 0.5, 1)];
en.particleSize = [10, 8]
en.particleAcceleration.set(0, -5, 0);
en.particleVelocity.set(direction.x*8,direction.y*8,direction.z*8);
en.particleLifetime = 2;
})
})
}
});
world.onRelease(({button})=>{
if(button=='action0'){
world.querySelectorAll(".laser").forEach((en)=>{
en.particleLimit =0;
})
}
})
幽梦子曦你家代码老了,在下改了一下
world.onPress(({button,raycast:{hitPosition}}) => {
if (button=='action0'){
world.querySelectorAll(".炮").forEach(async (e) => {
var direction = hitPosition.sub(e.position);
var orientation = Quattt.rotateY(Math.atan2(direction.z, direction.x));
e.meshOrientation.copy(orientation);
world.querySelectorAll(".激光").forEach((en)=>{
en.meshInvisible=true;
en.position.set(e.position.x,e.position.y+0.9,e.position.z);
en.particleLimit = 1000;
en.particleRate = 1000;
en.particleColor = [new Box3RGBColor(0.2, 0.2, 1), new Box3RGBColor(0.5, 0.5, 1)];
en.particleSize = [10, 8]
en.particleAcceleration.set(0, -5, 0);
en.particleVelocity.set(direction.x*8,direction.y*8,direction.z*8);
en.particleLifetime = 2;
})
})
}
});
world.onRelease(({button})=>{
if(button=='action0'){
world.querySelectorAll(".激光").forEach((en)=>{
en.particleLimit =0;
})
}
});
world.querySelectorAll('.par-x').forEach((e)=>{
e.particleLimit = Infinity;
e.particleRate = 2000;
e.particleSize = [0.2,0.2,0.2,0.2,0.2];
e.particleColor = [
new Box3RGBColor(10,0,0),
new Box3RGBColor(10,0,0),
new Box3RGBColor(10,0,0),
new Box3RGBColor(10,0,0),
new Box3RGBColor(10,0,0)
];
e.particleNoise = 0;
e.particleVelocity = new Box3Vector3(-7,7,-7);
e.particleAcceleration = new Box3Vector3(-1,0,0);
e.particleLifetime = 5;
});点赞0
评论