bx-865-apps #1
|
@ -2,8 +2,8 @@
|
||||||
import { useRouter } from 'vue-router';
|
import { useRouter } from 'vue-router';
|
||||||
import { shallowRef } from 'vue';
|
import { shallowRef } from 'vue';
|
||||||
import { onUnmounted, reactive, ref } from 'vue';
|
import { onUnmounted, reactive, ref } from 'vue';
|
||||||
import { CameraControls, FBXModel, PositionalAudio, useFBX, useProgress } from '@tresjs/cientos'
|
|
||||||
import { TresCanvas, useRenderLoop } from '@tresjs/core';
|
import { TresCanvas, useRenderLoop } from '@tresjs/core';
|
||||||
|
import { CameraControls, FBXModel, PositionalAudio, useFBX, useProgress } from '@tresjs/cientos'
|
||||||
import { Vector3 } from 'three';
|
import { Vector3 } from 'three';
|
||||||
|
|
||||||
import modelUrl from '../../assets/promo/models/sea_fbx/source/Stronghold.fbx'
|
import modelUrl from '../../assets/promo/models/sea_fbx/source/Stronghold.fbx'
|
||||||
|
@ -43,10 +43,12 @@ onUnmounted(() => {
|
||||||
|
|
||||||
const ducks: any[] = []
|
const ducks: any[] = []
|
||||||
const ducksRef: any[] = []
|
const ducksRef: any[] = []
|
||||||
|
const ducksObjectRef: any[] = []
|
||||||
for (let index = 0; index < 4; index++) {
|
for (let index = 0; index < 4; index++) {
|
||||||
const model = await useFBX(jeepUrl)
|
const model = await useFBX(jeepUrl)
|
||||||
ducks.push(model)
|
ducks.push(model)
|
||||||
ducksRef.push(ref())
|
ducksRef.push(ref())
|
||||||
|
ducksObjectRef.push(ref())
|
||||||
}
|
}
|
||||||
const { onLoop } = useRenderLoop()
|
const { onLoop } = useRenderLoop()
|
||||||
|
|
||||||
|
@ -60,7 +62,10 @@ onLoop(() => {
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div :class="[{ 'invisible': !!hasFinishLoading }, 'loader']">
|
||||||
|
Загрузка {{ progress }}%
|
||||||
|
</div>
|
||||||
|
<div :class="[{ 'invisible': !hasFinishLoading }]">
|
||||||
<TresCanvas window-size alpha shadows>
|
<TresCanvas window-size alpha shadows>
|
||||||
<TresPerspectiveCamera :position="cameraPosition" />
|
<TresPerspectiveCamera :position="cameraPosition" />
|
||||||
<CameraControls v-bind="controlsState" @change="onChange" make-default />
|
<CameraControls v-bind="controlsState" @change="onChange" make-default />
|
||||||
|
@ -74,12 +79,15 @@ onLoop(() => {
|
||||||
<FBXModel :path="jeepUrl" :scale="0.5"></FBXModel>
|
<FBXModel :path="jeepUrl" :scale="0.5"></FBXModel>
|
||||||
</Suspense>
|
</Suspense>
|
||||||
<template v-for="i in 4">
|
<template v-for="i in 4">
|
||||||
<Suspense>
|
<TresGroup :position-x="[1, 3].includes(i) ? -300 : 300" :position-z="100 * i" :ref="ducksRef[i - 1]">
|
||||||
<TresMesh :position-x="[1, 3].includes(i) ? -300 : 300" :position-z="100 * i"
|
<Suspense>
|
||||||
@click="() => console.log('click on duck')" :ref="ducksRef[i - 1]">
|
<primitive :object="ducks[i - 1]" :scale="0.25" :ref="ducksObjectRef[i - 1]" />
|
||||||
<primitive :object="ducks[i - 1]" :scale="0.25" />
|
</Suspense>
|
||||||
|
<TresMesh @click="router.push(`main/item/${i}`)">
|
||||||
|
<TresBoxGeometry :args="[110, 100, 100]" />
|
||||||
|
<TresMeshNormalMaterial :transparent="true" :opacity="0" />
|
||||||
</TresMesh>
|
</TresMesh>
|
||||||
</Suspense>
|
</TresGroup>
|
||||||
</template>
|
</template>
|
||||||
<TresDirectionalLight :position="lightPosition" :intensity="5" />
|
<TresDirectionalLight :position="lightPosition" :intensity="5" />
|
||||||
<TresAmbientLight />
|
<TresAmbientLight />
|
||||||
|
|
Loading…
Reference in New Issue