mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 21:57:00 +02:00
only look attractor if close
This commit is contained in:
parent
24da3b1019
commit
1bcd85d106
2 changed files with 232 additions and 47 deletions
|
@ -1,5 +1,6 @@
|
||||||
var fishtank, bubbleSystem, bubbleSound;
|
var fishtank, bubbleSystem, bubbleSound, bubbleInjector;
|
||||||
|
|
||||||
|
var CLEANUP = true;
|
||||||
var TANK_DIMENSIONS = {
|
var TANK_DIMENSIONS = {
|
||||||
x: 1.3393,
|
x: 1.3393,
|
||||||
y: 1.3515,
|
y: 1.3515,
|
||||||
|
@ -15,7 +16,7 @@ var DEBUG_COLOR = {
|
||||||
blue: 255
|
blue: 255
|
||||||
}
|
}
|
||||||
|
|
||||||
var center = Vec3.sum(MyAvatar.position, Vec3.multiply(Quat.getFront(MyAvatar.orientation), 2 * TANK_WIDTH));
|
var center = Vec3.sum(MyAvatar.position, Vec3.multiply(Quat.getFront(MyAvatar.orientation), 1 * TANK_WIDTH));
|
||||||
|
|
||||||
var TANK_POSITION = center;
|
var TANK_POSITION = center;
|
||||||
|
|
||||||
|
@ -23,9 +24,9 @@ var TANK_SCRIPT = Script.resolvePath('tank.js?' + Math.random())
|
||||||
|
|
||||||
var TANK_MODEL_URL = "http://hifi-content.s3.amazonaws.com/DomainContent/Home/fishTank/aquarium-6.fbx";
|
var TANK_MODEL_URL = "http://hifi-content.s3.amazonaws.com/DomainContent/Home/fishTank/aquarium-6.fbx";
|
||||||
|
|
||||||
var BUBBLE_SYSTEM_FORWARD_OFFSET = 0.2;
|
var BUBBLE_SYSTEM_FORWARD_OFFSET = 0.0;
|
||||||
var BUBBLE_SYSTEM_LATERAL_OFFSET = 0.2;
|
var BUBBLE_SYSTEM_LATERAL_OFFSET = TANK_DIMENSIONS.x - 0.25;
|
||||||
var BUBBLE_SYSTEM_VERTICAL_OFFSET = -0.2;
|
var BUBBLE_SYSTEM_VERTICAL_OFFSET = -1;
|
||||||
|
|
||||||
var BUBBLE_SYSTEM_DIMENSIONS = {
|
var BUBBLE_SYSTEM_DIMENSIONS = {
|
||||||
x: TANK_DIMENSIONS.x / 8,
|
x: TANK_DIMENSIONS.x / 8,
|
||||||
|
@ -65,7 +66,7 @@ function createFishTank() {
|
||||||
|
|
||||||
function createBubbleSystem() {
|
function createBubbleSystem() {
|
||||||
|
|
||||||
var tankProperties = Entities.getEntityProperties(fishTank);
|
var tankProperties = Entities.getEntityProperties(fishtank);
|
||||||
var bubbleProperties = {
|
var bubbleProperties = {
|
||||||
"color": {},
|
"color": {},
|
||||||
"isEmitting": 1,
|
"isEmitting": 1,
|
||||||
|
@ -130,31 +131,100 @@ function createBubbleSystem() {
|
||||||
finalOffset = Vec3.sum(finalOffset, frontOffset);
|
finalOffset = Vec3.sum(finalOffset, frontOffset);
|
||||||
finalOffset = Vec3.sum(finalOffset, rightOffset);
|
finalOffset = Vec3.sum(finalOffset, rightOffset);
|
||||||
|
|
||||||
|
print('final bubble offset:: ' + JSON.stringify(finalOffset));
|
||||||
bubbleProperties.position = finalOffset;
|
bubbleProperties.position = finalOffset;
|
||||||
|
|
||||||
bubbleSystem = Entities.addEntity(bubbleProperties);
|
bubbleSystem = Entities.addEntity(bubbleProperties);
|
||||||
createBubbleSound(finalOffset);
|
// createBubbleSound(finalOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
function createBubbleSound(position) {
|
function createBubbleSound(position) {
|
||||||
var audioProperties = {
|
var audioProperties = {
|
||||||
volume: 0.2,
|
volume: 1,
|
||||||
position: position,
|
position: position,
|
||||||
loop: true
|
loop: true
|
||||||
};
|
};
|
||||||
|
|
||||||
Audio.playSound(bubbleSound, audioProperties);
|
bubbleInjector = Audio.playSound(bubbleSound, audioProperties);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function cleanup() {
|
function cleanup() {
|
||||||
Entities.deleteEntity(fishTank);
|
Entities.deleteEntity(fishTank);
|
||||||
|
Entities.deleteEntity(bubbleSystem);
|
||||||
|
bubbleInjector.stop();
|
||||||
|
bubbleInjector = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function createInnerContainer(){
|
||||||
|
var containerProps = {
|
||||||
|
name:"hifi-home-fishtank-inner-container",
|
||||||
|
type:'Box',
|
||||||
|
color:{
|
||||||
|
red:0,
|
||||||
|
green:0,
|
||||||
|
blue:255
|
||||||
|
},
|
||||||
|
dimensions:{
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function createEntitiesAtCorners() {
|
||||||
|
|
||||||
|
var bounds = Entities.getEntityProperties(fishTank, "boundingBox").boundingBox;
|
||||||
|
|
||||||
|
var lowerProps = {
|
||||||
|
name:'hifi-home-fishtank-lower-corner',
|
||||||
|
type: "Box",
|
||||||
|
dimensions: {
|
||||||
|
x: 0.2,
|
||||||
|
y: 0.2,
|
||||||
|
z: 0.2
|
||||||
|
},
|
||||||
|
color: {
|
||||||
|
red: 255,
|
||||||
|
green: 0,
|
||||||
|
blue: 0
|
||||||
|
},
|
||||||
|
collisionless: true,
|
||||||
|
position: bounds.brn
|
||||||
|
}
|
||||||
|
|
||||||
|
var upperProps = {
|
||||||
|
name:'hifi-home-fishtank-upper-corner',
|
||||||
|
type: "Box",
|
||||||
|
dimensions: {
|
||||||
|
x: 0.2,
|
||||||
|
y: 0.2,
|
||||||
|
z: 0.2
|
||||||
|
},
|
||||||
|
color: {
|
||||||
|
red: 0,
|
||||||
|
green: 255,
|
||||||
|
blue: 0
|
||||||
|
},
|
||||||
|
collisionless: true,
|
||||||
|
position:bounds.tfl
|
||||||
|
}
|
||||||
|
|
||||||
|
var lowerCorner = Entities.addEntity(lowerProps);
|
||||||
|
var upperCorner = Entities.addEntity(upperProps);
|
||||||
|
print('CORNERS :::' + JSON.stringify(upperCorner) )
|
||||||
|
print('CORNERS :::' + JSON.stringify(lowerCorner) )
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
createFishTank();
|
createFishTank();
|
||||||
|
|
||||||
createBubbleSystem();
|
createBubbleSystem();
|
||||||
|
|
||||||
createBubbleSound();
|
createEntitiesAtCorners();
|
||||||
|
//createBubbleSound();
|
||||||
|
|
||||||
Script.scriptEnding.connect(cleanup);
|
|
||||||
|
|
||||||
|
if (CLEANUP === true) {
|
||||||
|
Script.scriptEnding.connect(cleanup);
|
||||||
|
}
|
|
@ -11,6 +11,8 @@
|
||||||
var connected = false;
|
var connected = false;
|
||||||
|
|
||||||
var TANK_SEARCH_RADIUS = 5;
|
var TANK_SEARCH_RADIUS = 5;
|
||||||
|
var WANT_LOOK_DEBUG_LINE = false;
|
||||||
|
var WANT_LOOK_DEBUG_SPHERE = true;
|
||||||
|
|
||||||
var INTERSECT_COLOR = {
|
var INTERSECT_COLOR = {
|
||||||
red: 255,
|
red: 255,
|
||||||
|
@ -50,8 +52,9 @@
|
||||||
lookAttractor: null,
|
lookAttractor: null,
|
||||||
overlayLine: null,
|
overlayLine: null,
|
||||||
overlayLineDistance: 3,
|
overlayLineDistance: 3,
|
||||||
|
debugSphere: null,
|
||||||
findFishInTank: function() {
|
findFishInTank: function() {
|
||||||
// print('looking for a fish in the tank')
|
print('looking for a fish in the tank')
|
||||||
var results = Entities.findEntities(_this.currentProperties.position, TANK_SEARCH_RADIUS);
|
var results = Entities.findEntities(_this.currentProperties.position, TANK_SEARCH_RADIUS);
|
||||||
var fishList = [];
|
var fishList = [];
|
||||||
|
|
||||||
|
@ -109,7 +112,7 @@
|
||||||
unload: function() {
|
unload: function() {
|
||||||
print(' UNLOAD')
|
print(' UNLOAD')
|
||||||
Script.update.disconnect(_this.update);
|
Script.update.disconnect(_this.update);
|
||||||
if (WANT_LOOK_DEBUG === true) {
|
if (WANT_LOOK_DEBUG_LINE === true) {
|
||||||
_this.overlayLineOff();
|
_this.overlayLineOff();
|
||||||
}
|
}
|
||||||
if (baton) {
|
if (baton) {
|
||||||
|
@ -129,6 +132,43 @@
|
||||||
_this.seeIfOwnerIsLookingAtTheTank();
|
_this.seeIfOwnerIsLookingAtTheTank();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
debugSphereOn: function(position) {
|
||||||
|
if (_this.debugSphere !== null) {
|
||||||
|
Entities.editEntity(_this.debugSphere, {
|
||||||
|
visible: true
|
||||||
|
})
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var sphereProperties = {
|
||||||
|
type: 'Sphere',
|
||||||
|
parentID: _this.entityID,
|
||||||
|
dimensions: {
|
||||||
|
x: 0.1,
|
||||||
|
y: 0.1,
|
||||||
|
z: 0.1,
|
||||||
|
},
|
||||||
|
color: INTERSECT_COLOR,
|
||||||
|
position: position,
|
||||||
|
collisionless: true
|
||||||
|
}
|
||||||
|
_this.debugSphere = Entities.addEntity(sphereProperties);
|
||||||
|
},
|
||||||
|
|
||||||
|
updateDebugSphere: function(position) {
|
||||||
|
Entities.editEntity(_this.debugSphere, {
|
||||||
|
visible:true,
|
||||||
|
position: position
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
debugSphereOff: function() {
|
||||||
|
// Entities.deleteEntity(_this.debugSphere);
|
||||||
|
Entities.editEntity(_this.debugSphere, {
|
||||||
|
visible: false
|
||||||
|
})
|
||||||
|
//_this.debugSphere = null;
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
overlayLineOn: function(closePoint, farPoint, color) {
|
overlayLineOn: function(closePoint, farPoint, color) {
|
||||||
if (_this.overlayLine === null) {
|
if (_this.overlayLine === null) {
|
||||||
|
@ -175,33 +215,59 @@
|
||||||
direction: front
|
direction: front
|
||||||
};
|
};
|
||||||
|
|
||||||
if (WANT_LOOK_DEBUG === true) {
|
if (WANT_LOOK_DEBUG_LINE === true) {
|
||||||
_this.overlayLineOn(pickRay.origin, Vec3.sum(pickRay.origin, Vec3.multiply(front, _this.overlayLineDistance)), INTERSECT_COLOR);
|
_this.overlayLineOn(pickRay.origin, Vec3.sum(pickRay.origin, Vec3.multiply(front, _this.overlayLineDistance)), INTERSECT_COLOR);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
var intersection = Entities.findRayIntersection(pickRay, true, [_this.entityID]);
|
var intersection = Entities.findRayIntersection(pickRay, true, [_this.entityID]);
|
||||||
|
|
||||||
if (intersection.intersects && intersection.entityID === _this.entityID) {
|
if (intersection.intersects && intersection.entityID === _this.entityID) {
|
||||||
print('intersecting a tank')
|
//print('intersecting a tank')
|
||||||
print('intersection:: ' + JSON.stringify(intersection));
|
if (WANT_LOOK_DEBUG_SPHERE === true) {
|
||||||
|
if (_this.debugSphere === null) {
|
||||||
|
_this.debugSphereOn(intersection.intersection);
|
||||||
|
} else {
|
||||||
|
_this.updateDebugSphere(intersection.intersection);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print('INT DIST: ' + intersection.distance);
|
||||||
|
if (intersection.distance > 1.5) {
|
||||||
|
print('NOT CLOSE ENOUGH TO THE TANK')
|
||||||
|
if (WANT_LOOK_DEBUG_SPHERE === true) {
|
||||||
|
_this.debugSphereOff();
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// print('intersection:: ' + JSON.stringify(intersection));
|
||||||
if (_this.hasLookAttractor === false) {
|
if (_this.hasLookAttractor === false) {
|
||||||
_this.createLookAttractor();
|
_this.createLookAttractor(intersection.intersection, intersection.distance);
|
||||||
} else if (_this.hasLookAttractor === true) {
|
} else if (_this.hasLookAttractor === true) {
|
||||||
_this.updateLookAttractor();
|
_this.updateLookAttractor(intersection.intersection, intersection.distance);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (_this.hasLookAttractor === true) {
|
if (_this.hasLookAttractor === true) {
|
||||||
clearLookAttractor();
|
_this.clearLookAttractor();
|
||||||
|
}
|
||||||
|
if (WANT_LOOK_DEBUG_SPHERE === true) {
|
||||||
|
_this.debugSphereOff();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
//look attractors could be private to the tank...
|
//look attractors could be private to the tank...
|
||||||
createLookAttractor: function(position) {
|
createLookAttractor: function(position, distance) {
|
||||||
_this.lookAttractor = position;
|
_this.lookAttractor = {
|
||||||
|
position: position,
|
||||||
|
distance: distance
|
||||||
|
};
|
||||||
|
_this.hasLookAttractor = true;
|
||||||
},
|
},
|
||||||
updateLookAttractor: function(position) {
|
updateLookAttractor: function(position, distance) {
|
||||||
_this.lookAttractor = position;
|
_this.lookAttractor = {
|
||||||
|
position: position,
|
||||||
|
distance: distance
|
||||||
|
};
|
||||||
},
|
},
|
||||||
clearLookAttractor: function() {
|
clearLookAttractor: function() {
|
||||||
_this.hasLookAttractor = false;
|
_this.hasLookAttractor = false;
|
||||||
|
@ -253,30 +319,29 @@
|
||||||
z: 3.5914
|
z: 3.5914
|
||||||
};
|
};
|
||||||
|
|
||||||
var TANK_WIDTH = TANK_DIMENSIONS.z / 3;
|
var TANK_WIDTH = TANK_DIMENSIONS.z / 2;
|
||||||
var TANK_HEIGHT = TANK_DIMENSIONS.y / 3;
|
var TANK_HEIGHT = TANK_DIMENSIONS.y / 2;
|
||||||
var FISH_WIDTH = 0.03;
|
var FISH_WIDTH = 0.03;
|
||||||
var FISH_LENGTH = 0.15;
|
var FISH_LENGTH = 0.15;
|
||||||
var MAX_SIGHT_DISTANCE = 0.8;
|
var MAX_SIGHT_DISTANCE = 1.5;
|
||||||
var MIN_SEPARATION = 0.15;
|
var MIN_SEPARATION = 0.15;
|
||||||
var AVOIDANCE_FORCE = 0.3;
|
var AVOIDANCE_FORCE = 0.32;
|
||||||
var COHESION_FORCE = 0.025;
|
var COHESION_FORCE = 0.025;
|
||||||
var ALIGNMENT_FORCE = 0.025;
|
var ALIGNMENT_FORCE = 0.025;
|
||||||
var LOOK_ATTRACTOR_FORCE = 0.030;
|
var LOOK_ATTRACTOR_FORCE = 0.029;
|
||||||
var SWIMMING_FORCE = 0.05;
|
var SWIMMING_FORCE = 0.05;
|
||||||
var SWIMMING_SPEED = 0.5;
|
var SWIMMING_SPEED = 0.5;
|
||||||
var FISH_DAMPING = 0.25;
|
var FISH_DAMPING = 0.25;
|
||||||
|
|
||||||
var WANT_LOOK_DEBUG = false;
|
|
||||||
|
|
||||||
var THROTTLE = false;
|
var THROTTLE = false;
|
||||||
var THROTTLE_RATE = 100;
|
var THROTTLE_RATE = 100;
|
||||||
var sinceLastUpdate = 0;
|
var sinceLastUpdate = 0;
|
||||||
|
|
||||||
var FISH_MODEL_URL = "http://hifi-content.s3.amazonaws.com/DomainContent/Home/fishTank/Fish-1.fbx";
|
// var FISH_MODEL_URL = "http://hifi-content.s3.amazonaws.com/DomainContent/Home/fishTank/Fish-1.fbx";
|
||||||
|
|
||||||
var FISH_MODEL_TWO_URL = "http://hifi-content.s3.amazonaws.com/DomainContent/Home/fishTank/Fish-2.fbx";
|
|
||||||
|
|
||||||
|
// var FISH_MODEL_TWO_URL = "http://hifi-content.s3.amazonaws.com/DomainContent/Home/fishTank/Fish-2.fbx";
|
||||||
|
var FISH_MODEL_URL = "http://hifi-content.s3.amazonaws.com/DomainContent/Home/fishTank/goodfish5.fbx";
|
||||||
|
var FISH_MODEL_TWO_URL = "http://hifi-content.s3.amazonaws.com/DomainContent/Home/fishTank/goodfish5.fbx";
|
||||||
var fishLoaded = false;
|
var fishLoaded = false;
|
||||||
|
|
||||||
function randomVector(scale) {
|
function randomVector(scale) {
|
||||||
|
@ -287,6 +352,44 @@
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function createEntitiesAtCorners(lower, upper) {
|
||||||
|
var lowerProps = {
|
||||||
|
type: "box",
|
||||||
|
dimensions: {
|
||||||
|
x: 0.2,
|
||||||
|
y: 0.2,
|
||||||
|
z: 0.2
|
||||||
|
},
|
||||||
|
color: {
|
||||||
|
red: 255,
|
||||||
|
green: 0,
|
||||||
|
blue: 0
|
||||||
|
},
|
||||||
|
collisionless: true,
|
||||||
|
position: lower
|
||||||
|
}
|
||||||
|
|
||||||
|
var upperProps = {
|
||||||
|
type: "box",
|
||||||
|
dimensions: {
|
||||||
|
x: 0.2,
|
||||||
|
y: 0.2,
|
||||||
|
z: 0.2
|
||||||
|
},
|
||||||
|
color: {
|
||||||
|
red: 0,
|
||||||
|
green: 255,
|
||||||
|
blue: 0
|
||||||
|
},
|
||||||
|
collisionless: true,
|
||||||
|
position: upper
|
||||||
|
}
|
||||||
|
|
||||||
|
_this.lowerCorner = Entities.addEntity(lowerProps);
|
||||||
|
_this.upperCorner = Entities.addEntity(upperProps);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
function updateFish(deltaTime) {
|
function updateFish(deltaTime) {
|
||||||
|
|
||||||
if (_this.tankLocked === true) {
|
if (_this.tankLocked === true) {
|
||||||
|
@ -317,7 +420,9 @@
|
||||||
fishLoaded: true
|
fishLoaded: true
|
||||||
});
|
});
|
||||||
_this.userData['hifi-home-fishtank'].fishLoaded = true;
|
_this.userData['hifi-home-fishtank'].fishLoaded = true;
|
||||||
_this.fish = _this.findFishInTank();
|
Script.setTimeout(function() {
|
||||||
|
_this.fish = _this.findFishInTank();
|
||||||
|
}, 2000)
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
@ -330,10 +435,10 @@
|
||||||
|
|
||||||
|
|
||||||
var fish = _this.fish;
|
var fish = _this.fish;
|
||||||
// print('how many fish do i find?' + fish.length)
|
// print('how many fish do i find?' + fish.length)
|
||||||
|
|
||||||
if (fish.length === 0) {
|
if (fish.length === 0) {
|
||||||
print('no fish...')
|
// print('no fish...')
|
||||||
return
|
return
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -362,6 +467,8 @@
|
||||||
z: center.z + (TANK_WIDTH / 2)
|
z: center.z + (TANK_WIDTH / 2)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//createEntitiesAtCorners(lowerCorner,upperCorner);
|
||||||
|
|
||||||
// First pre-load an array with properties on all the other fish so our per-fish loop
|
// First pre-load an array with properties on all the other fish so our per-fish loop
|
||||||
// isn't doing it.
|
// isn't doing it.
|
||||||
var flockProperties = [];
|
var flockProperties = [];
|
||||||
|
@ -432,12 +539,15 @@
|
||||||
//attractors
|
//attractors
|
||||||
//[position, radius, force]
|
//[position, radius, force]
|
||||||
|
|
||||||
if (_this.hasLookAttractor === true) {
|
|
||||||
var attractorPosition = _this.lookAttractor;
|
|
||||||
var towardAttractor = Vec3.subtract(attractorPosition, position);
|
|
||||||
velocity = Vec3.mix(velocity, Vec3.multiply(Vec3.normalize(towardAttractor), Vec3.length(velocity)), LOOK_ATTRACTOR_FORCE);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_this.hasLookAttractor === true) {
|
||||||
|
//print('has a look attractor, so use it')
|
||||||
|
var attractorPosition = _this.lookAttractor.position;
|
||||||
|
var towardAttractor = Vec3.subtract(attractorPosition, position);
|
||||||
|
velocity = Vec3.mix(velocity, Vec3.multiply(Vec3.normalize(towardAttractor), Vec3.length(velocity)), LOOK_ATTRACTOR_FORCE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Try to swim at a constant speed
|
// Try to swim at a constant speed
|
||||||
|
@ -470,6 +580,10 @@
|
||||||
var rotation = Quat.rotationBetween(Vec3.UNIT_NEG_Z, velocity);
|
var rotation = Quat.rotationBetween(Vec3.UNIT_NEG_Z, velocity);
|
||||||
var VELOCITY_FOLLOW_RATE = 0.30;
|
var VELOCITY_FOLLOW_RATE = 0.30;
|
||||||
|
|
||||||
|
var safeEuler = Quat.safeEulerAngles(rotation);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Only update properties if they have changed, to save bandwidth
|
// Only update properties if they have changed, to save bandwidth
|
||||||
var MIN_POSITION_CHANGE_FOR_UPDATE = 0.001;
|
var MIN_POSITION_CHANGE_FOR_UPDATE = 0.001;
|
||||||
if (Vec3.distance(properties.position, position) < MIN_POSITION_CHANGE_FOR_UPDATE) {
|
if (Vec3.distance(properties.position, position) < MIN_POSITION_CHANGE_FOR_UPDATE) {
|
||||||
|
@ -523,12 +637,13 @@
|
||||||
modelURL: fish.length % 2 === 0 ? FISH_MODEL_URL : FISH_MODEL_TWO_URL,
|
modelURL: fish.length % 2 === 0 ? FISH_MODEL_URL : FISH_MODEL_TWO_URL,
|
||||||
position: position,
|
position: position,
|
||||||
parentID: _this.entityID,
|
parentID: _this.entityID,
|
||||||
rotation: {
|
// rotation: {
|
||||||
x: 0,
|
// x: 0,
|
||||||
y: 0,
|
// y: 0,
|
||||||
z: 0,
|
// z: 0,
|
||||||
w: 1
|
// w: 1
|
||||||
},
|
// },
|
||||||
|
// type: "Box",
|
||||||
// dimensions: {
|
// dimensions: {
|
||||||
// x: FISH_WIDTH,
|
// x: FISH_WIDTH,
|
||||||
// y: FISH_WIDTH,
|
// y: FISH_WIDTH,
|
||||||
|
|
Loading…
Reference in a new issue