World.createPlayer C# (CSharp) Method

createPlayer() public method

public createPlayer ( ) : void
return void
    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);
    }