Andrew Meadowsarchive remaining JS scriptsc0b446c10 years agoHistory
53 lines · 1.6 KB · JavaScript
RawDownload
////  entityCollisionExample.js//  examples////  Created by Howard Stearns on 5/25/15.//  Copyright 2015 High Fidelity, Inc.////  This is an example script that demonstrates use of the per-entity event handlers.////  Distributed under the Apache License, Version 2.0.//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html// function someCollisionFunction(entityA, entityB, collision) {  print("collision: " + JSON.stringify({a: entityA, b: entityB, c: collision}));} var position = Vec3.sum(MyAvatar.position, Quat.getFront(MyAvatar.orientation));  var properties = {  type: "Box",  position: position,  dynamic: true,  color: { red: 200, green: 0, blue: 0 }};var collider = Entities.addEntity(properties);var armed = false;function togglePrinting() {  print('togglePrinting from ' + armed + ' on ' + collider);  if (armed) {    Script.removeEventHandler(collider, "collisionWithEntity", someCollisionFunction);  } else {    Script.addEventHandler(collider, "collisionWithEntity", someCollisionFunction);  }  armed = !armed;  print("Red box " + (armed ? "will" : "will not") + " print on collision.");}togglePrinting(); properties.position.y += 0.2;properties.color.blue += 200;// A handy target for the collider to hit.var target = Entities.addEntity(properties); properties.position.y += 0.2;properties.color.green += 200;var button = Entities.addEntity(properties);Script.addEventHandler(button, "clickReleaseOnEntity", togglePrinting); Script.scriptEnding.connect(function () {  Entities.deleteEntity(collider);  Entities.deleteEntity(target);  Entities.deleteEntity(button);});