public void createPlayer()
{
if (player != null)
{
if(terrain != null)
player.GetComponent<GameEntity>().entityEnable();
return;
}
if (KBEngineApp.app.entity_type != "Avatar") {
return;
}
KBEngine.Avatar avatar = (KBEngine.Avatar)KBEngineApp.app.player();
if(avatar == null)
{
Debug.Log("wait create(palyer)!");
return;
}
float y = avatar.position.y;
if(avatar.isOnGround)
y = 1.3f;
player = Instantiate(avatarPerfab, new Vector3(avatar.position.x, y, avatar.position.z),
Quaternion.Euler(new Vector3(avatar.direction.y, avatar.direction.z, avatar.direction.x))) as UnityEngine.GameObject;
player.GetComponent<GameEntity>().entityDisable();
avatar.renderObj = player;
((UnityEngine.GameObject)avatar.renderObj).GetComponent<GameEntity>().isPlayer = true;
// 有必要设置一下,由于该接口由Update异步调用,有可能set_position等初始化信息已经先触发了
// 那么如果不设置renderObj的位置和方向将为0,人物会陷入地下
set_position(avatar);
set_direction(avatar);
}