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.
扩展脚本类