Skip to content

Instantly share code, notes, and snippets.

@sorskoot
Created March 26, 2020 19:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sorskoot/3103b0dc6953bfeb112b01016e6a6a39 to your computer and use it in GitHub Desktop.
Save sorskoot/3103b0dc6953bfeb112b01016e6a6a39 to your computer and use it in GitHub Desktop.
/* Babylon Mesh Component Template */
module PROJECT {
export class Shoot extends BABYLON.MeshComponent {
distance: number;
public constructor(owner: BABYLON.AbstractMesh, scene: BABYLON.Scene, tick: boolean = true, propertyBag: any = {}) {
super(owner, scene, tick, propertyBag);
}
protected ready(): void {
// Scene execute when ready
}
protected start(): void {
this.distance = this.getProperty("distance");
this.manager.webvr.onControllerMeshLoadedObservable.add(
(eventData, eventState) => {
eventData.onTriggerStateChangedObservable.add(
(buttonData, buttonState) => {
if (buttonData.pressed && buttonData.value === 1) {
let ray = eventData.getForwardRay(this.distance);
//BABYLON.RayHelper.CreateAndShow(ray, this.scene, BABYLON.Color3.Red())
let zombies = this.scene.getMeshesByTags("Zombie");
let picked = ray.intersectsMeshes(zombies);
for(let i =0;i<picked.length;i++){
this.manager.safeDestroy(picked[i].pickedMesh);
}
}
}
)
}
)
}
protected update(): void {
// Update render loop function
}
protected after(): void {
// After render loop function
}
protected destroy(): void {
// Destroy component function
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment