Giter Site home page Giter Site logo

createscript's Introduction

Introduction

Allows the usage of ES6/Babel with PlayCanvas by patching the PlayCanvas script loader in both the Editor and the Engine runtime. When installed the created scripts also can specify a .construct method on their prototype which will be called after the main PlayCanvas constructor. This enables script to be run at creation time, which was lost in PlayCanvas Scripts 2 which otherwise only calls user supplied code when the item is first enabled.

Additionally adds the ability to set an object containing the definition of attributes for the script. This enables Intellisense systems to show those variables defined on the script as being available.

In addition to the traditional method of defining attributes the user may also use the new pc.attr object which has helpers to quickly create attributes with less clutter and typing while retaining the full functionality.

Installation

npm install --save createscript

Usage

import 'createscript'

...

let MyScript = pc.createScript('myscript')
MyScript.attributes.set({
    stringAttribute:            pc.attr.string,
    stringAttributeWithDefault: pc.attr.string.default("Default Value"),
    stringAttributeWithEnum:    pc.attr.string
                                    .enum({ 
                                        "Mode A": "a", 
                                        "Mode b": b
                                    })
                                    .default("b"),
    numericAttribute:           pc.attr.number,
    animationAttribute:         pc.attr.animation,
    entityAttribute:            pc.attr.entity,
    booleanAttribute:           pc.attr.boolean.enum({ "On": true, "Off": false}),
    vectorAttribute:            pc.attr.vec3.default(0,0,1),
    anotherVectorAttribute:     pc.attr.vec3.default(pc.Vec3.UP),
    yetAnotherVectorAttribute:  pc.attr.vec3.default([0,1,0])
})

MyScript.prototype.construct = function() {
    //Called at instantiation time, even if not enabled - this.entity is set
}

Includes all current attributes with "sensible" names.

Available attributes are:

string, number, boolean, entity, animation, audio, vec3, curve, curveSet, model, material, json, text, html, css, shader, font, binary, texture, scene

Requirements

Requires PlayCanvas Engine to be running on the page. Uses ES6/Babel/PlayCanvas template.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.