getComponent不再需要指定类型
This commit is contained in:
8
source/bin/framework.d.ts
vendored
8
source/bin/framework.d.ts
vendored
@@ -353,7 +353,7 @@ declare module es {
|
||||
* 创建组件的新实例。返回实例组件
|
||||
* @param componentType
|
||||
*/
|
||||
createComponent<T extends Component>(componentType: new () => T): T;
|
||||
createComponent<T extends Component>(componentType: new (...args: any[]) => T): T;
|
||||
/**
|
||||
* 将组件添加到组件列表中。返回组件。
|
||||
* @param component
|
||||
@@ -363,14 +363,14 @@ declare module es {
|
||||
* 获取类型T的第一个组件并返回它。如果没有找到组件,则返回null。
|
||||
* @param type
|
||||
*/
|
||||
getComponent<T extends Component>(type: any): T;
|
||||
getComponent<T extends Component>(type: new (...args: any[]) => T): T;
|
||||
/**
|
||||
* 尝试获取T类型的组件。如果未找到任何组件,则返回false
|
||||
* @param type
|
||||
* @param outComponent
|
||||
* @returns
|
||||
*/
|
||||
tryGetComponent<T extends Component>(type: any, outComponent: Ref<T>): boolean;
|
||||
tryGetComponent<T extends Component>(type: new (...args: any[]) => T, outComponent: Ref<T>): boolean;
|
||||
/**
|
||||
* 检查实体是否具有该组件
|
||||
* @param type
|
||||
@@ -1100,7 +1100,7 @@ declare module es {
|
||||
}
|
||||
}
|
||||
declare module es {
|
||||
abstract class Collider extends Component {
|
||||
class Collider extends Component {
|
||||
/**
|
||||
* 对撞机的基本形状
|
||||
*/
|
||||
|
||||
@@ -128,7 +128,7 @@ module es {
|
||||
}
|
||||
|
||||
public onAddedToEntity() {
|
||||
this._collider = this.entity.getComponent<es.Collider>(es.Collider);
|
||||
this._collider = this.entity.getComponent(es.Collider);
|
||||
Debug.warnIf(this._collider == null, "ArcadeRigidbody 没有 Collider。ArcadeRigidbody需要一个Collider!");
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
module es {
|
||||
export abstract class Collider extends Component {
|
||||
export class Collider extends Component {
|
||||
/**
|
||||
* 对撞机的基本形状
|
||||
*/
|
||||
|
||||
@@ -8,7 +8,7 @@ module es {
|
||||
private _collider: Collider;
|
||||
|
||||
public onAddedToEntity() {
|
||||
this._collider = this.entity.getComponent<Collider>(Collider);
|
||||
this._collider = this.entity.getComponent(Collider);
|
||||
Debug.warnIf(this._collider == null, "ProjectileMover没有Collider。ProjectilMover需要一个Collider!");
|
||||
}
|
||||
|
||||
|
||||
@@ -384,7 +384,7 @@ module es {
|
||||
* 创建组件的新实例。返回实例组件
|
||||
* @param componentType
|
||||
*/
|
||||
public createComponent<T extends Component>(componentType: new () => T): T {
|
||||
public createComponent<T extends Component>(componentType: new (...args) => T): T {
|
||||
let component = new componentType();
|
||||
this.addComponent(component);
|
||||
return component;
|
||||
@@ -405,7 +405,7 @@ module es {
|
||||
* 获取类型T的第一个组件并返回它。如果没有找到组件,则返回null。
|
||||
* @param type
|
||||
*/
|
||||
public getComponent<T extends Component>(type: any): T {
|
||||
public getComponent<T extends Component>(type: new (...args) => T): T {
|
||||
return this.components.getComponent(type, false);
|
||||
}
|
||||
|
||||
@@ -415,7 +415,7 @@ module es {
|
||||
* @param outComponent
|
||||
* @returns
|
||||
*/
|
||||
public tryGetComponent<T extends Component>(type: any, outComponent: Ref<T>): boolean {
|
||||
public tryGetComponent<T extends Component>(type: new (...args) => T, outComponent: Ref<T>): boolean {
|
||||
outComponent.value = this.components.getComponent<T>(type, false);
|
||||
return outComponent.value != null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user