Skip to content
GameObject

基类 / GameObject

GameObject Class

场景中所有实体的基类

Model、Pawn、Camera、AdvancedVehicle、BlockingVolume等逻辑对象均继承自GameObject。

提供复制删除物体,查找获取物体、子物体、脚本等功能。

使用示例:创建一个名为"GameObjectExample"的脚本,在场景中放置模型正方体、圆柱、圆台,父子关系树为:正方体/圆柱/圆台,并把GameObjectExample脚本挂载给正方体。代码如下:
ts
@Component
export default class GameObjectExample extends Script {
    protected onStart(): void {
        let obj: GameObject = this.gameObject;
        console.log(`obj.name = ${obj.name}`);
        console.log(`obj.tag = ${obj.tag}`);
        console.log(`obj.worldTransform = ${obj.worldTransform}`);
        console.log(`obj.localTransform = ${obj.localTransform}`);
        let children = obj.getChildren();
        children.forEach(child => {
            console.log(`obj child = ${child.name}`);
        });
        let path = "正方体/圆柱"
        let cylinderObj = GameObject.getGameObjectByPath(path);
        console.log(`getGameObjectByPath = ${cylinderObj ? cylinderObj.name : "undefined"}`);
        path = "圆柱/圆台"
        cylinderObj = obj.getChildByPath(path);
        console.log(`getChildByPath = ${cylinderObj ? cylinderObj.name : "undefined"}`);
        cylinderObj.onDestroyDelegate.add(()=>{
            console.log(`destroyDelegate 1 = ${cylinderObj ? cylinderObj.name : "undefined"}`);
        });
        cylinderObj.onDestroyDelegate.add(()=>{
            console.log(`destroyDelegate 2 = ${cylinderObj ? cylinderObj.name : "undefined"}`);
        });
        cylinderObj.destroy();
    }
}
@Component
export default class GameObjectExample extends Script {
    protected onStart(): void {
        let obj: GameObject = this.gameObject;
        console.log(`obj.name = ${obj.name}`);
        console.log(`obj.tag = ${obj.tag}`);
        console.log(`obj.worldTransform = ${obj.worldTransform}`);
        console.log(`obj.localTransform = ${obj.localTransform}`);
        let children = obj.getChildren();
        children.forEach(child => {
            console.log(`obj child = ${child.name}`);
        });
        let path = "正方体/圆柱"
        let cylinderObj = GameObject.getGameObjectByPath(path);
        console.log(`getGameObjectByPath = ${cylinderObj ? cylinderObj.name : "undefined"}`);
        path = "圆柱/圆台"
        cylinderObj = obj.getChildByPath(path);
        console.log(`getChildByPath = ${cylinderObj ? cylinderObj.name : "undefined"}`);
        cylinderObj.onDestroyDelegate.add(()=>{
            console.log(`destroyDelegate 1 = ${cylinderObj ? cylinderObj.name : "undefined"}`);
        });
        cylinderObj.onDestroyDelegate.add(()=>{
            console.log(`destroyDelegate 2 = ${cylinderObj ? cylinderObj.name : "undefined"}`);
        });
        cylinderObj.destroy();
    }
}

Hierarchy

Table of contents

Properties

onBeforeDestroyDelegate: MulticastDelegate<() => void>
物体销毁前事件回调
onCustomPropertyChange: Readonly<MulticastDelegate<(path: string, value: unknown, oldValue: unknown) => void>> other
监听自定义属性同步事件
onDestroyDelegate: MulticastDelegate<() => void>
物体销毁后事件回调
onPropertyChange: Readonly<MulticastDelegate<(path: string, value: unknown, oldValue: unknown) => void>>
监听系统属性同步事件

Accessors

actorFlagValue(): number other
获取对象标记
actorLevel(): number other
获取Actor等级
assetId(): string
获取当前物体使用资源的GUID
gameObjectId(): string
获取物体的唯一标识(唯一标识一个对象的字符串)。
isDestroyed(): boolean
当前物体是否被销毁
isReady(): boolean
当前物体状态
localTransform(): Transform
当前物体本地变换
name(): string
返回当前物体名称
netStatus(): NetStatus
获取当前物体同步状态
parent(): GameObject
获取当前父物体
tag(): string
获取当前物体的标签
worldTransform(): Transform
当前物体世界变换

Methods

addComponent<T: extends Script<T>>(constructor: (...args: unknown[]) => T: extends Script<T>, bInReplicates?: boolean): T: extends Script<T>
添加一个脚本组件
asyncGetChildByName(name: string): Promise<GameObject>
异步根据名称查找子物体
asyncReady(): Promise<GameObject>
物体准备好后返回
clone(gameObjectInfo?: GameObjectInfo): GameObject
复制对象
destroy(): void
删除对象
getBoundingBox(nonColliding?: boolean, includeFromChild?: boolean, outer?: Vector): Vector
获取物体包围盒大小
getBounds(onlyCollidingComponents: boolean, originOuter: Vector, boxExtentOuter: Vector, includeFromChild?: boolean): void
获取物体边界
getChildByGameObjectId(gameObjectId: string): GameObject
根据 gameObjectId 查找子物体
getChildByName(name: string): GameObject
根据名称查找子物体
getChildByPath(path: string): GameObject
根据路径查找子物体
getChildren(): GameObject[]
获取子物体
getChildrenBoundingBoxCenter(outer?: Vector): Vector
获取所有子对象包围盒中心点(不包含父对象,父对象不可用返回[0,0,0])
getChildrenByName(name: string): GameObject[]
通过名字查找所有的子物体
getComponent<T: extends Script<T>>(constructor?: (...args: unknown[]) => T: extends Script<T>): T: extends Script<T>
获取指定类型的组件
getComponentPropertys<T: extends Script<T>>(constructor: (...args: unknown[]) => T: extends Script<T>): Map<string, IPropertyOptions>
获取脚本组件属性
getComponents<T: extends Script<T>>(constructor?: (...args: unknown[]) => T: extends Script<T>): T: extends Script<T>[]
获取指定类型的所有组件
getCustomProperties(): string[]
获取所有自定义属性
getCustomProperty<T: extends CustomPropertyType>(propertyName: string): T: extends CustomPropertyType
获取自定义属性
getCustomPropertyChangeDelegate(property): Readonly<MulticastDelegate<(path: string, value: unknown, oldValue: unknown) => void>> other
给定对象属性修改时触发的事件代理
getPropertyChangeDelegate(property): Readonly<MulticastDelegate<(path: string, value: unknown, oldValue: unknown) => void>> other
给定对象属性修改时触发的事件代理
getVisibility(): boolean
获取物体是否被显示
isPrefabActor(): boolean
返回当前物体是否为预制体
moveBy(velocity: Vector, isLocal?: boolean): void other
按给定的速度矢量随时间平滑地移动对象
moveTo(targetPosition: Vector, time: number, isLocal?: boolean, onComplete?: () => void): void other
在指定时间内从当前位置平滑移动至目标位置
rotateBy(rotation: Quaternion Rotation, multiplier: number, isLocal?: boolean): void other
按给定的旋转量随时间平滑地旋转对象
rotateTo(targetRotation: Quaternion Rotation, time: number, isLocal?: boolean, onComplete?: () => void): void other
在指定时间内从当前旋转平滑变化至目标旋转
scaleBy(scale: Vector, isLocal?: boolean): void other
按每秒给定的缩放矢量随时间平滑缩放对象
scaleTo(targetScale: Vector, time: number, isLocal?: boolean, onComplete?: () => void): void other
在指定时间内从当前缩放平滑变化至目标缩放
setAbsolute(absolutePosition?: boolean, absoluteRotation?: boolean, absoluteScale?: boolean): void
设置物体localTransform是相对于父物体或者世界
setCustomProperty(propertyName: string, value: undefined CustomPropertyType): void
设置自定义属性
setVisibility(status: boolean PropertyStatus, propagateToChildren?: boolean): void
设置物体是否被显示
stopMove(): void other
中断moveTo()、moveBy()的进一步移动
stopRotate(): void other
中断从rotateTo()或rotateBy()的进一步旋转
stopScale(): void other
中断从ScaleTo()或ScaleBy()的进一步缩放
asyncFindGameObjectById(gameObjectId: string): Promise<GameObject>
通过 gameObjectId 异步查找 GameObject
asyncGetGameObjectByPath(path: string): Promise<GameObject>
通过路径异步查找物体
asyncSpawn<T: extends GameObject<T>>(assetId: string, gameObjectInfo?: GameObjectInfo): Promise<T: extends GameObject<T>>
异步构造一个物体
bulkPivotTo(gameObjects: GameObject[], transforms: Transform[]): void
批量设置位置
findGameObjectById(gameObjectId: string): GameObject
通过 gameObjectId 查找物体
findGameObjectByName(name: string): GameObject
通过名字查找物体
findGameObjectsByName(name: string): GameObject[]
通过名字查找物体
findGameObjectsByTag(tag: string): GameObject[]
通过自定义标签获取物体
getGameObjectByPath(path: string): GameObject
通过路径查找物体
spawn<T: extends GameObject<T>>(assetId: string, gameObjectInfo?: GameObjectInfo): T: extends GameObject<T>
构造一个物体

Properties

onBeforeDestroyDelegate

onBeforeDestroyDelegate: MulticastDelegate<() => void>

物体销毁前事件回调


onCustomPropertyChange

onCustomPropertyChange: Readonly<MulticastDelegate<(path: string, value: unknown, oldValue: unknown) => void>> other

监听自定义属性同步事件

ts
this.onCustomPropertyChange.add((path, value, oldValue) => {
    console.log(`属性 ${path} 改变了,新值为 ${value},旧值为 ${oldValue}`);
});
this.onCustomPropertyChange.add((path, value, oldValue) => {
    console.log(`属性 ${path} 改变了,新值为 ${value},旧值为 ${oldValue}`);
});

onDestroyDelegate

onDestroyDelegate: MulticastDelegate<() => void>

物体销毁后事件回调


onPropertyChange

onPropertyChange: Readonly<MulticastDelegate<(path: string, value: unknown, oldValue: unknown) => void>>

监听系统属性同步事件

ts
this.onPropertyChange.add((path, value, oldValue) => {
    console.log(`属性 ${path} 改变了,新值为 ${value},旧值为 ${oldValue}`);
});
this.onPropertyChange.add((path, value, oldValue) => {
    console.log(`属性 ${path} 改变了,新值为 ${value},旧值为 ${oldValue}`);
});

Accessors

actorFlagValue

get actorFlagValue(): number other

set actorFlagValue(v): void other

获取对象标记

Returns

number

设置对象标记

Parameters

vnumber

actorLevel

get actorLevel(): number other

获取Actor等级

Returns

number

assetId

get assetId(): string

获取当前物体使用资源的GUID

Returns

string

gameObjectId

get gameObjectId(): string

获取物体的唯一标识(唯一标识一个对象的字符串)。

Returns

string

isDestroyed

get isDestroyed(): boolean

当前物体是否被销毁

Returns

boolean

isReady

get isReady(): boolean

当前物体状态

Returns

boolean

localTransform

get localTransform(): Transform

set localTransform(transform): void

当前物体本地变换

Returns

Transform

当前物体本地变换

Parameters

transformTransform

name

get name(): string

set name(name): void

Editor

返回当前物体名称

Returns

string名称

Editor

设置物体名称

Parameters

name string需要设置的名称

netStatus

get netStatus(): NetStatus

获取当前物体同步状态

Returns

NetStatusmw.NetStatus

parent

get parent(): GameObject

set parent(newParent): void

获取当前父物体

Returns

GameObject父物体

设置父物体

Parameters

newParentGameObject

tag

get tag(): string

set tag(tag): void

获取当前物体的标签

Returns

stringTag

设置当前物体的标签

Parameters

tag stringTag

worldTransform

get worldTransform(): Transform

set worldTransform(transform): void

当前物体世界变换

Returns

Transform

当前物体世界变换

Parameters

transformTransform

Methods

addComponent

addComponent<T>(constructor, bInReplicates?): T

添加一个脚本组件

Parameters

constructor (...args: unknown[]) => TScriptComponentClass 添加脚本的类型
default: null
bInReplicates? boolean是否开启同步
default: 在服务端调用,默认会同步;在客户端调用,默认不同步。

Returns

TT 新添加的脚本组件

Type parameters

Textends Script<T>

asyncGetChildByName

asyncGetChildByName(name): Promise<GameObject>

Editor

异步根据名称查找子物体

Parameters

name string名称
range: 字符串最大长度根据不同物体的名称长度决定。

Returns

Promise<GameObject>查找的物体

asyncReady

asyncReady(): Promise<GameObject>

物体准备好后返回

Returns

Promise<GameObject>准备好的对象

clone

clone(gameObjectInfo?): GameObject

Editor

复制对象

Parameters

gameObjectInfo? GameObjectInfo克隆物体的信息
default: null

Returns

GameObject克隆的对象

destroy

destroy(): void

删除对象


getBoundingBox

getBoundingBox(nonColliding?, includeFromChild?, outer?): Vector

获取物体包围盒大小

Parameters

nonColliding? boolean表示要在边界框中包含非碰撞组件
default:false
includeFromChild? boolean如果为 true,则递归子物体
default:false
outer? Vector接收转换数据的 Vector 对象
default:null

Returns

Vectormw.Vector

Precautions

如果 outer 不为空, 返回 outer,否则返回一个新的 Vector 对象,建议传入 outer 来减少 new 对象


getBounds

getBounds(onlyCollidingComponents, originOuter, boxExtentOuter, includeFromChild?): void

获取物体边界

Parameters

onlyCollidingComponents boolean是否只包含有碰撞的组件。
originOuter Vector传出参数,设置为物体的中心点坐标。
boxExtentOuter Vector传出参数,设置为物体尺寸的一半。
includeFromChild? boolean是否递归包含子物体
default:undefined

getChildByGameObjectId

getChildByGameObjectId(gameObjectId): GameObject

根据 gameObjectId 查找子物体

Parameters

gameObjectId stringgameObjectId
range: 字符串最大长度根据不同类型的 ID 长度决定。

Returns

GameObject查找的物体

getChildByName

getChildByName(name): GameObject

Editor

根据名称查找子物体

Parameters

name string名称
range: 字符串最大长度根据不同物体的名称长度决定。

Returns

GameObject查找的物体

getChildByPath

getChildByPath(path): GameObject

根据路径查找子物体

Parameters

path string路径
range: 字符串最大长度根据不同路径长度决定。

Returns

GameObject查找的物体

getChildren

getChildren(): GameObject[]

获取子物体

Returns

GameObject[]Array<GameObject>

getChildrenBoundingBoxCenter

getChildrenBoundingBoxCenter(outer?): Vector

获取所有子对象包围盒中心点(不包含父对象,父对象不可用返回[0,0,0])

Parameters

outer? Vector接收转换数据的 Vector 对象
default:null

Returns

Vectormw.Vector

Precautions

如果 outer 不为空, 返回 outer,否则返回一个新的 Vector 对象,建议传入 outer 来减少 new 对象


getChildrenByName

getChildrenByName(name): GameObject[]

通过名字查找所有的子物体

Parameters

name string子物体名称
range: 字符串最大长度根据不同类型的名字 ID 长度决定。

Returns

GameObject[]符合的子物体数组

getComponent

getComponent<T>(constructor?): T

获取指定类型的组件

Parameters

constructor? (...args: unknown[]) => T脚本类型
default:null

Returns

T脚本组件
使用示例:创建一个名为"NewScript1"的脚本,通过 getComponent 获取 NewScript 脚本。代码如下:
ts
import NewScript from "./NewScript";
@Component
export default class NewScript1 extends Script {
    protected onStart(): void {
        const script = this.gameObject.getComponent(NewScript);
    }
}
import NewScript from "./NewScript";
@Component
export default class NewScript1 extends Script {
    protected onStart(): void {
        const script = this.gameObject.getComponent(NewScript);
    }
}

Type parameters

Textends Script<T>

getComponentPropertys

getComponentPropertys<T>(constructor): Map<string, IPropertyOptions>

获取脚本组件属性

Parameters

constructor (...args: unknown[]) => T脚本类型
default:null

Returns

Map<string, IPropertyOptions>组件所有属性 Map<key: IPropertyOptions>

Type parameters

Textends Script<T>

getComponents

getComponents<T>(constructor?): T[]

获取指定类型的所有组件

Parameters

constructor? (...args: unknown[]) => T脚本类型
default:null

Returns

T[]脚本组件列表

Type parameters

Textends Script<T>

getCustomProperties

getCustomProperties(): string[]

获取所有自定义属性

Returns

string[]属性名列表
ts
const attributes = this.getAttributes();
console.log(attributes);
// ["name", "age"]
const attributes = this.getAttributes();
console.log(attributes);
// ["name", "age"]

getCustomProperty

getCustomProperty<T>(propertyName): T

获取自定义属性

Parameters

propertyNamestring

Returns

T属性值

Type parameters

Textends CustomPropertyType

getCustomPropertyChangeDelegate

getCustomPropertyChangeDelegate(property): Readonly<MulticastDelegate<(path: string, value: unknown, oldValue: unknown) => void>> other

给定对象属性修改时触发的事件代理

Parameters

property string对象属性名字

Returns

Readonly<MulticastDelegate<(path: string, value: unknown, oldValue: unknown) => void>>代理对象

getPropertyChangeDelegate

getPropertyChangeDelegate(property): Readonly<MulticastDelegate<(path: string, value: unknown, oldValue: unknown) => void>> other

给定对象属性修改时触发的事件代理

Parameters

property string对象属性名字 例如:'x' 'rotation.x'

Returns

Readonly<MulticastDelegate<(path: string, value: unknown, oldValue: unknown) => void>>代理对象

getVisibility

getVisibility(): boolean

获取物体是否被显示

Returns

booleanbool

isPrefabActor

isPrefabActor(): boolean

Editor

返回当前物体是否为预制体

Returns

boolean名称

moveBy

moveBy(velocity, isLocal?): void other

按给定的速度矢量随时间平滑地移动对象

Parameters

velocity Vector速度
isLocal? boolean是否本地空间生效 default:true
使用示例: 调用方式
ts
let cube = GameObject.spawn<Model>("197386", {
   replicates: true,
   transform: new Transform()
});
cube.moveBy(new Vector(10, 10, 0), true);
let cube = GameObject.spawn<Model>("197386", {
   replicates: true,
   transform: new Transform()
});
cube.moveBy(new Vector(10, 10, 0), true);

moveTo

moveTo(targetPosition, time, isLocal?, onComplete?): void other

在指定时间内从当前位置平滑移动至目标位置

Parameters

targetPosition Vector目标位置
time number缓动时间 range: > 0 type: number
isLocal? boolean是否本地空间生效 default:true
onComplete? () => void完成回调方法 default:undefined
使用示例: 调用方式
ts
let cube = GameObject.spawn<Model>("197386", {
   replicates: true,
   transform: new Transform()
});
cube.moveTo(new Vector(1000, 0, 0), 10, true, () => {
   console.log("moveTo complete");
});
let cube = GameObject.spawn<Model>("197386", {
   replicates: true,
   transform: new Transform()
});
cube.moveTo(new Vector(1000, 0, 0), 10, true, () => {
   console.log("moveTo complete");
});

rotateBy

rotateBy(rotation, multiplier, isLocal?): void other

按给定的旋转量随时间平滑地旋转对象

Parameters

rotation Quaternion Rotation旋转速度
multiplier number旋转乘数 range: > 0 type: number
isLocal? boolean是否本地空间生效 default:true
使用示例: 调用方式
ts
let cube = GameObject.spawn<Model>("197386", {
   replicates: true,
   transform: new Transform()
});
cube.rotateBy(new Rotation(1, 0, 1), 5, true);
let cube = GameObject.spawn<Model>("197386", {
   replicates: true,
   transform: new Transform()
});
cube.rotateBy(new Rotation(1, 0, 1), 5, true);

rotateTo

rotateTo(targetRotation, time, isLocal?, onComplete?): void other

在指定时间内从当前旋转平滑变化至目标旋转

Parameters

targetRotation Quaternion Rotation目标朝向
time number缓动时间 range: > 0 type: number
isLocal? boolean是否本地空间生效 default:true
onComplete? () => void完成回调方法 default:undefined
使用示例: 调用方式
ts
let cube = GameObject.spawn<Model>("197386", {
   replicates: true,
   transform: new Transform()
});
cube.rotateTo(new Rotation(45, 0, 0), 10, true, () => {
   console.log("rotateTo complete");
});
let cube = GameObject.spawn<Model>("197386", {
   replicates: true,
   transform: new Transform()
});
cube.rotateTo(new Rotation(45, 0, 0), 10, true, () => {
   console.log("rotateTo complete");
});

scaleBy

scaleBy(scale, isLocal?): void other

按每秒给定的缩放矢量随时间平滑缩放对象

Parameters

scale Vector缩放速度
isLocal? boolean是否本地空间生效 default:true
使用示例: 调用方式
ts
let cube = GameObject.spawn<Model>("197386", {
   replicates: true,
   transform: new Transform()
});
cube.scaleBy(new Vector(1, 1, 0), true);
let cube = GameObject.spawn<Model>("197386", {
   replicates: true,
   transform: new Transform()
});
cube.scaleBy(new Vector(1, 1, 0), true);

scaleTo

scaleTo(targetScale, time, isLocal?, onComplete?): void other

在指定时间内从当前缩放平滑变化至目标缩放

Parameters

targetScale Vector目标缩放
time number缓动时间 range: > 0 type: number
isLocal? boolean是否本地空间生效 default:true
onComplete? () => void完成回调方法 default:undefined
使用示例: 调用方式
ts
let cube = GameObject.spawn<Model>("197386", {
   replicates: true,
   transform: new Transform()
});
cube.scaleTo(new Vector(2, 2, 0), 10, true, () => {
   console.log("scaleTo complete");
});
let cube = GameObject.spawn<Model>("197386", {
   replicates: true,
   transform: new Transform()
});
cube.scaleTo(new Vector(2, 2, 0), 10, true, () => {
   console.log("scaleTo complete");
});

setAbsolute

setAbsolute(absolutePosition?, absoluteRotation?, absoluteScale?): void

Editor

设置物体localTransform是相对于父物体或者世界

Parameters

absolutePosition? boolean位置是否为相对于世界 default: false
absoluteRotation? boolean旋转是否为相对于世界 default: false
absoluteScale? boolean缩放是否为相对于世界 default: false

setCustomProperty

setCustomProperty(propertyName, value): void

设置自定义属性

Parameters

propertyName string-
value undefined CustomPropertyType属性值

setVisibility

setVisibility(status, propagateToChildren?): void

设置物体是否被显示

Parameters

status boolean PropertyStatus状态
propagateToChildren? boolean是否设置子物体
default:false

stopMove

stopMove(): void other

中断moveTo()、moveBy()的进一步移动


stopRotate

stopRotate(): void other

中断从rotateTo()或rotateBy()的进一步旋转


stopScale

stopScale(): void other

中断从ScaleTo()或ScaleBy()的进一步缩放


asyncFindGameObjectById

Static asyncFindGameObjectById(gameObjectId): Promise<GameObject>

通过 gameObjectId 异步查找 GameObject

Parameters

gameObjectId string物体的 gameObjectId
range: 字符串最大长度根据不同类型的资源 ID 长度决定。

Returns

Promise<GameObject>gameObjectId对应的物体

默认是10秒,可以通过 ScriptingSettings.setGlobalAsyncOverTime(1000 * 10) 方式来设置。


asyncGetGameObjectByPath

Static asyncGetGameObjectByPath(path): Promise<GameObject>

通过路径异步查找物体

Parameters

path string物体路径
range: 字符串最大长度根据路径 ID 长度决定。不做限制。

Returns

Promise<GameObject>路径对应的物体

asyncSpawn

Static asyncSpawn<T>(assetId, gameObjectInfo?): Promise<T>

异步构造一个物体

Parameters

assetId string资源 id
range: 字符串最大长度根据不同类型的资源 ID 长度决定。
gameObjectInfo? GameObjectInfo构建物体的信息
default: 选填

Returns

Promise<T>构造的物体

资源不存在会先去下载资源再去创建

使用示例:调用方法
ts
let obj = await GameObject.asyncSpawn<Model>("197386", {
    replicates: true,
    transform: new Transform()
});
let obj = await GameObject.asyncSpawn<Model>("197386", {
    replicates: true,
    transform: new Transform()
});

Type parameters

Textends GameObject<T>

bulkPivotTo

Static bulkPivotTo(gameObjects, transforms): void

批量设置位置

Parameters

gameObjects GameObject[]准备更新Transform的GameObject列表
transforms Transform[]位置提供目标值的Transform列表

findGameObjectById

Static findGameObjectById(gameObjectId): GameObject

通过 gameObjectId 查找物体

Parameters

gameObjectId string物体的 gameObjectId
range: 字符串最大长度根据不同类型的资源 ID 长度决定。

Returns

GameObjectgameObjectId对应的物体

findGameObjectByName

Static findGameObjectByName(name): GameObject

通过名字查找物体

Parameters

name string物体名字
range: 字符串最大长度根据不同类型的名字 ID 长度决定。

Returns

GameObject返回第一个查找到的对象,如有多个同名对象,随机返回一个

Precautions

全局查询接口会耗费一定的查询时间,可能会降低游戏的性能。


findGameObjectsByName

Static findGameObjectsByName(name): GameObject[]

通过名字查找物体

Parameters

name string物体名字
range: 字符串最大长度根据不同类型的资源 ID 长度决定。

Returns

GameObject[]返回所有查找到的对象

Precautions

全局查询接口会耗费一定的查询时间,可能会降低游戏的性能。


findGameObjectsByTag

Static findGameObjectsByTag(tag): GameObject[]

通过自定义标签获取物体

Parameters

tag string自定义 tag
range: 字符串最大长度不超过 200 个字

Returns

GameObject[]Array<GameObject>

getGameObjectByPath

Static getGameObjectByPath(path): GameObject

通过路径查找物体

Parameters

path string物体路径
range: 字符串最大长度根据路径 ID 长度决定。不做限制。

Returns

GameObject返回第一个查找到的对象,如有多个同名对象,返回找到的第一个

spawn

Static spawn<T>(assetId, gameObjectInfo?): T

构造一个物体

Parameters

assetId string资源 id
range: 根据资源 ID 长度而定
gameObjectInfo? GameObjectInfo构建物体的信息
default: 选填
range: 字符串最大长度根据不同类型的资源 ID 长度决定。

Returns

T构造的物体
使用示例: 调用方式
ts
let obj = GameObject.spawn<Model>("197386", {
   replicates: true,
   transform: new Transform()
});
let obj = GameObject.spawn<Model>("197386", {
   replicates: true,
   transform: new Transform()
});

Type parameters

Textends GameObject<T>