大神,求助unity天空盒问题
答案:2 悬赏:40
解决时间 2021-02-28 13:33
- 提问者网友:绿海猖狂
- 2021-02-27 15:08
大神,求助unity天空盒问题
最佳答案
- 二级知识专家网友:最后战士
- 2021-02-27 16:21
这个貌似不能,但是可以在进入编辑器后对天空盒进行修改可行方法:1、点击菜单栏的window2、选择lightling 3、Skybox选择None如果能帮到你,请采纳,谢谢:)
全部回答
- 1楼网友:劳资的心禁止访问
- 2021-02-27 17:44
1将unity3d安装目录下的unity\editor\data\playbackengines\androidplayer\release\bin\classes.jar
拷贝到android工程的libs文件夹里:
2
右键单击classes.jar选择build path里面的add to build path:
3
在mainactivity中继承unityplayeractivity。删除多余的方法,仅保留oncreate方法中的super.oncreate语句,如下:
public class mainactivity extends unityplayeractivity {
@override
protected void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
}
}
4
添加要在unity中调用的方法,这里添加一个带一个参数的方法startactivity来调用android的activity从而运行android的代码。还添加了一个有返回值的方法getint,用来测试在unity中获取android中方法的返回值。(貌似只能有一个unityplayeractivity,而且这个activity不能是调用第三方sdk方法的activity。unityplayeractivity只能作为unity和android交互的一个接口,在这里面再去调用其他的activity)
5
package com.example.unitydemo;
import android.content.context;
import android.content.intent;
import android.os.bundle;
import com.unity3d.player.unityplayeractivity;
public class mainactivity extends unityplayeractivity {
private context mcontext = null;
@override
protected void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
mcontext = this;
}
public void startactivity(string name) {
intent intent = new intent(mcontext, welcomeactivity.class);
intent.putextra("name", name);
this.startactivity(intent);
}
public int getint()
{
return 1;
}
}
6
然后clean一下当前工程,避免一些不必要的问题。
然后在build project
右键单击工程,选择export
选择jar file
右边全部勾选,输入jar的路径和名字,然后单击finish:
在unity项目中创建一个plugins,如下的目录结构
其中bin文件夹放我们刚刚导出的jar包,libs文件夹放需要用的第三方库文件,res文件夹和androidmanifest直接从android工程中拷贝过来。
(除了res文件夹不能动,其他的最好都不要放在单独的文件夹里面,貌似除了jar能加载出来,其他格式的文件如果放在其他目录下会加载不出来)
然后在unity里面创建一个脚本文件,绑定在maincamera上(当然也可以绑定在其他的对象上),如下:
在脚本文件中写如下代码:
using unityengine;
using system.collections;
public class demo : monobehaviour {
void start () {
}
void update()
{
//当用户按下手机的返回键或home键退出游戏
if (input.getkeydown(keycode.escape) || input.getkeydown(keycode.home) )
{
application.quit();
}
}
void ongui()
{
if (gui.button(new rect(screen.width * 0.1f, screen.height * 0.1f, screen.width * 0.8f, screen.height * 0.1f), "startactivity"))
{
androidjavaclass jc = new androidjavaclass("com.unity3d.player.unityplayer");
androidjavaobject jo = jc.getstatic("currentactivity");
jo.call("startactivity", "第一个activity");
}
if (gui.button(new rect(screen.width * 0.1f, screen.height * 0.2f, screen.width * 0.8f, screen.height * 0.1f), "getint"))
{
androidjavaclass jc = new androidjavaclass("com.unity3d.player.unityplayer");
androidjavaobject jo = jc.getstatic("currentactivity");
debug.log(jo.call("getint"));
}
}
}
然后生成apk文件,记得先把包名改成与android工程一样的包名。
要测试,只能在手机上测。
最终效果图:
17
单击startactivity,启动android的一个activity,单击getint,console显示1
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯