小编kre*_*edj的帖子

使用addView()时我的应用程序崩溃

我是机器人的菜鸟.每当我使用ViewGroup addView()方法时,我的应用程序都会崩溃,但是当我使用Activity addContentView()方法时,它会起作用.

我想使用addView()而不是addContentView()的原因是我希望能够在不需要时删除布局,这是addContentView()无法实现的.

代码:MainActivity.java

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //CAMERA VIEW
    setContentView(R.layout.activity_main);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

    surfaceView = (SurfaceView)findViewById(R.id.surfaceview);
    surfaceHolder = surfaceView.getHolder();
    surfaceHolder.addCallback(this);
    surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

    ViewGroup rootView = (ViewGroup) findViewById(R.layout.activity_main);
    LayoutInflater mLayoutInflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);

    //GRAPHICS VIEW
    glSurfaceView = new GLSurfaceView(this);
    glSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
    glSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);
    glSurfaceView.setRenderer(new GLRenderer());
    //crash
    //rootView.addView(glSurfaceView, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
    //not crash
    addContentView(glSurfaceView, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
    glSurfaceView.setZOrderMediaOverlay(true);

    //CONTROLS VIEW
    View ctrlLayout = mLayoutInflater.inflate(R.layout.activity_controls, rootView);
        //crash
        //rootView.addView(ctrlLayout, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
        //not crash
    addContentView(ctrlLayout, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
    ctrlLayout.bringToFront();
    textView …
Run Code Online (Sandbox Code Playgroud)

android viewgroup

9
推荐指数
2
解决办法
9302
查看次数

如何使用NetworkManager同步所有客户端的场景加载

我正在为iOS创建2D游戏.我的游戏使用主机和客户端方法为两个玩家与局域网中的游戏.主机在加载下一个场景后等待客户端.问题是两个玩家的场景加载都没有同步.场景比另一个更早开始.我想等待所有玩家在任何其他工作之前加载场景.

我的NetworkManager没有分配在线和离线场景.没有playerPrefab也因为它会动态添加.我正在使用ServerChangeScene().我是Unity和网络的新手,所以任何帮助都会受到赞赏.

public override void OnServerConnect (NetworkConnection conn)
{
    base.OnServerConnect (conn);

    print ("OnServerConnect");

    //not localclient(host)
    if (client != null && client.connection != conn) {
        ServerChangeScene ("PlayScene");
    }
}
Run Code Online (Sandbox Code Playgroud)

c# unity-game-engine

5
推荐指数
1
解决办法
2301
查看次数

标签 统计

android ×1

c# ×1

unity-game-engine ×1

viewgroup ×1