Hi guys!
Task: The button needs to look always to the camera
I really sucked in code )) but one of my friends give me this one
const Scene = require(‘Scene’);
const R = require(‘Reactive’);
const Time = require(‘Time’);
const Patches = require(‘Patches’);
const DeviceMotion = require(‘DeviceMotion’);
const TouchGestures = require(‘TouchGestures’);
// Use export keyword to make a symbol available in scripting debug console
export const Diagnostics = require(‘Diagnostics’);
// Enables async/await in JS [part 1]
(async function() {
const [bossNull, boss, camera] = await Promise.all([
Scene.root.findFirst(‘bossNull’),
Scene.root.findFirst(‘plane0’),
Scene.root.findFirst(‘Camera’)
]);
let angle = getAngleBetweenVertices();
// Here if i moving around object its moving to the camera.
boss.transform.rotationY = degrees_to_radians(angle.z);
// if i add another axes its ruined and object work not well
// boss.transform.rotationX = degrees_to_radians(angle.y);
function normalizeAngle(angle){
if (R.gt(angle, R.val(360))) {
return angle.sub(R.val(360));
}
if (R.lt(angle, 0)) {
return angle.sum(R.val(360));
} else return angle;
}
function getAngleBetweenPoints(cx, cy, ex, ey){
var dy = R.sub(ey,cy);
var dx = R.sub(ex,cx);
var theta = R.atan2(dy, dx);
return R.mul(theta, R.val(180/Math.PI))
}
function getAngleBetweenVertices(){
return R.point(
normalizeAngle(getAngleBetweenPoints(bossNull.worldTransform.position.z, bossNull.worldTransform.position.x, camera.worldTransform.position.z, camera.worldTransform.position.x)),
normalizeAngle(getAngleBetweenPoints(bossNull.worldTransform.position.z, bossNull.worldTransform.position.y, camera.worldTransform.position.z, camera.worldTransform.position.y)),
normalizeAngle(getAngleBetweenPoints(bossNull.worldTransform.position.x, bossNull.worldTransform.position.y, camera.worldTransform.position.x, camera.worldTransform.position.y))
)
}
function degrees_to_radians(degrees) {
var pi = Math.PI;
return R.mul(degrees, R.val(pi/180));
}
})();
How to solve this problem?