# GameObject

# 说明

GameObject 是游戏中所有对象的基类,提供了访问游戏对象基本属性和状态的方法。

# 如何使用

auto gameObj = GameObject::GetByIndex(0);
if (gameObj && gameObj->IsValid() && gameObj->IsEnemy()) {
    Console::Add("发现敌方对象:%s", gameObj->Name());
}

# Flags

int Flags()

获取游戏对象的标志位。

int flags = gameObject->Flags();

# IsValid

bool IsValid()

检查游戏对象是否有效。

if (gameObject->IsValid()) {
    // 对象有效,执行操作
}

# IsMe

bool IsMe()

检查游戏对象是否是本地玩家。

if (gameObject->IsMe()) {
    // 这是本地玩家
}

# IsDead

bool IsDead()

检查游戏对象是否已死亡。

if (!gameObject->IsDead()) {
    // 对象还活着,执行操作
}

# IsAlly

bool IsAlly()

检查游戏对象是否是友方单位。

if (gameObject->IsAlly()) {
    // 这是友方单位
}

# IsEnemy

bool IsEnemy()

检查游戏对象是否是敌方单位。

if (gameObject->IsEnemy()) {
    // 这是敌方单位
}

# BoundingRadius

float BoundingRadius()

获取游戏对象的边界半径。

float radius = gameObject->BoundingRadius();

# Type

eGameObjectType Type()

获取游戏对象的类型。

if (gameObject->Type() == eGameObjectType::Hero) {
    // 这是英雄单位
}

# Name

const char* Name()

获取游戏对象的名称。

const char* name = gameObject->Name();
Console::Add("对象名称: %s", name);

# Position

Vector const& Position()

获取游戏对象的位置。

Vector position = gameObject->Position();
Console::Add("对象位置: %.1f, %.1f, %.1f", position.X, position.Y, position.Z);

# Index

short Index()

获取游戏对象的索引。

short idx = gameObject->Index();

# IsVisible

bool IsVisible()

检查游戏对象是否可见。

if (gameObject->IsVisible()) {
    // 对象可见,执行操作
}

# Team

eGameObjectTeam Team()

获取游戏对象所属的队伍。

if (gameObject->Team() == eGameObjectTeam::Order) {
    // 这是秩序方的单位
}

# NetworkId

int NetworkId()

获取游戏对象的网络ID。

int netId = gameObject->NetworkId();

# IsNeutral

bool IsNeutral()

检查游戏对象是否是中立单位。

if (gameObject->IsNeutral()) {
    // 这是中立单位
}

# IsAIBase

bool IsAIBase()

检查对象是否继承自 AIBase(如 AIMinion、AIHero、AITurret 等)。

if (gameObject->IsAIBase()) {
    // 这是 AI 控制的单位
}

# IsAIMinion

bool IsAIMinion()

检查对象是否是 AI 小兵(包括野怪、兵线小兵、守卫等)。

if (gameObject->IsAIMinion()) {
    // 这是小兵单位
}

# IsAIHero

bool IsAIHero()

检查对象是否是 AI 英雄。

if (gameObject->IsAIHero()) {
    // 这是英雄单位
}

# IsAITurret

bool IsAITurret()

检查对象是否是 AI 防御塔。

if (gameObject->IsAITurret()) {
    // 这是防御塔
}

# IsMissile

bool IsMissile()

检查对象是否是投射物。

if (gameObject->IsMissile()) {
    // 这是投射物
}