Create a new ScriptType instance.
The input arguments object.
The AppBase that is running the script.
The Entity that the script is attached to.
The AppBase that the instance of this type belongs to.
The Entity that the instance of this type belongs to.
Protected
attrs获得脚本属性
True if the instance of this type is in running state. False when script is not running,
because the Entity or any of its parents are disabled or the ScriptComponent is
disabled or the Script Instance is disabled. When disabled no update methods will be called
on each tick. initialize and postInitialize methods will run once when the script instance
is in enabled
state during app tick.
Static
attributesThe interface to define attributes for Script Types. Refer to ScriptAttributes.
var PlayerController = pc.createScript('playerController');
PlayerController.attributes.add('speed', {
type: 'number',
title: 'Speed',
placeholder: 'km/h',
default: 22.2
});
Static
scriptName of a Script Type.
Fire an event, all additional arguments are passed on to the event listener.
Self for chaining.
obj.fire('test', 'This is the message');
Name of event to fire.
Optional
arg1: anyFirst argument that is passed to the event handler.
Optional
arg2: anySecond argument that is passed to the event handler.
Optional
arg3: anyThird argument that is passed to the event handler.
Optional
arg4: anyFourth argument that is passed to the event handler.
Optional
arg5: anyFifth argument that is passed to the event handler.
Optional
arg6: anySixth argument that is passed to the event handler.
Optional
arg7: anySeventh argument that is passed to the event handler.
Optional
arg8: anyEighth argument that is passed to the event handler.
Test if there are any handlers bound to an event name.
True if the object has handlers bound to the specified event name.
obj.on('test', function () { }); // bind an event to 'test'
obj.hasEvent('test'); // returns true
obj.hasEvent('hello'); // returns false
The name of the event to test.
Optional
initializeDetach an event handler from an event. If callback is not provided then all callbacks are unbound from the event, if scope is not provided then all events with the callback will be unbound.
Self for chaining.
var handler = function () {
};
obj.on('test', handler);
obj.off(); // Removes all events
obj.off('test'); // Removes all events called 'test'
obj.off('test', handler); // Removes all handler functions, called 'test'
obj.off('test', handler, this); // Removes all handler functions, called 'test' with scope this
Optional
name: stringName of the event to unbind.
Optional
callback: HandleEventCallbackFunction to be unbound.
Optional
scope: objectScope that was used as the this when the event is fired.
Attach an event handler to an event.
Self for chaining.
obj.on('test', function (a, b) {
console.log(a + b);
});
obj.fire('test', 1, 2); // prints 3 to the console
Name of the event to bind the callback to.
Function that is called when event is fired. Note the callback is limited to 8 arguments.
Optional
scope: objectObject to use as 'this' when the event is fired, defaults to current this.
添加脚本属性监听
脚本属性名称
属性变化回调函数
Optional
scope: object回调函数this指向
Attach an event handler to an event. This handler will be removed after being fired once.
Self for chaining.
obj.once('test', function (a, b) {
console.log(a + b);
});
obj.fire('test', 1, 2); // prints 3 to the console
obj.fire('test', 1, 2); // not going to get handled
Name of the event to bind the callback to.
Function that is called when event is fired. Note the callback is limited to 8 arguments.
Optional
scope: objectObject to use as 'this' when the event is fired, defaults to current this.
Optional
postOptional
postOptional
swapCalled when a ScriptType that already exists in the registry gets redefined. If the new
ScriptType has a swap
method in its prototype, then it will be executed to perform
hot-reload at runtime.
Old instance of the scriptType to copy data to the new instance.
Optional
updateStatic
extendShorthand function to extend Script Type prototype with list of methods.
var PlayerController = pc.createScript('playerController');
PlayerController.extend({
initialize: function () {
// called once on initialize
},
update: function (dt) {
// called each tick
}
});
Object with methods, where key - is name of method, and value - is function.
扩展脚本类