这是一篇站在android角度写unity的文章。java
最近与unity的约会过于频繁,致使矛盾出现。先来看下android与unity交互的操做,首先二者要在一块儿。
unity3d项目导入android studioandroid
一、android调用unity,展现unity的方法。UnityPlayer.UnitySendMessage() 参数1表示发送游戏对象的名称(由unity方给出,并且是固定的),参数2表示对象绑定的脚本接收该消息的方法(由unity方给出,并且是固定的),参数3表示本条消息发送的字符串信息(双方约定的,能够是一串字符,json数据等)json
UnityPlayer.UnitySendMessage("Directional Light","ReceiveJson",data);
二、android下载unity文件并储存到本地,以供unity读取。this
【1】android下载到的unity文件存储路径 String path=getContext().getExternalFilesDir("")+"/"+fileName; 【2】unity读取文件的路径 WWW download = WWW.LoadFromCacheOrDownload ("file://"+Application.dataPath + "/fileName", 1);
三、android与unity互传数据格式的约定为json数据格式。3d
【1】建立javaBean类 /** * 所有汇总给unity */ public class TallScene { private FirstScene firstScene; private SecondScene secondScene; private ThirdScene thirdScene; private FourScene fourScene; public TallScene(){ this.firstScene=new FirstScene(); this.secondScene = new SecondScene(); this.thirdScene = new ThirdScene(); this.fourScene = new FourScene(); } public TallScene(FirstScene firstScene) { this.firstScene = firstScene; } public FirstScene getFirstScene() { return firstScene; } public void setFirstScene(FirstScene firstScene) { this.firstScene = firstScene; } public SecondScene getSecondScene() { return secondScene; } public void setSecondScene(SecondScene secondScene) { this.secondScene = secondScene; } public ThirdScene getThirdScene() { return thirdScene; } public void setThirdScene(ThirdScene thirdScene) { this.thirdScene = thirdScene; } public FourScene getFourScene() { return fourScene; } public void setFourScene(FourScene fourScene) { this.fourScene = fourScene; } } 【2】构造json数据 public class CreateJson { //json对象 public static String createJson(TallScene scene) { // TODO Auto-generated method stub try { // 第一个场景的json JSONObject firstJson = new JSONObject(); firstJson.put("sexman", scene.getFirstScene().getSexman()); firstJson.put("sexwoman", scene.getFirstScene().getSexwoman()); // 第二个场景的json JSONObject secondJson = new JSONObject(); secondJson.put("action", scene.getSecondScene().getAction()); secondJson.put("background", scene.getSecondScene().getBackground()); // 第三个场景的json JSONObject thirdJson = new JSONObject(); thirdJson.put("background", scene.getThirdScene().getBackground()); thirdJson.put("action", scene.getThirdScene().getAction()); thirdJson.put("text", scene.getThirdScene().getText()); thirdJson.put("time", scene.getThirdScene().getTime()); // 第四个场景的json JSONObject fourScene = new JSONObject(); fourScene.put("injection", scene.getFourScene().getInjection()); fourScene.put("text", scene.getFourScene().getText()); // 全部场景的json JSONObject allSceneJson = new JSONObject(); allSceneJson.put("firstscene", firstJson); allSceneJson.put("secondscene",secondJson); allSceneJson.put("thirdscene",thirdJson); allSceneJson.put("fourthscene",fourScene); L.i("这个是全部场景的json", allSceneJson.toString() ); return allSceneJson.toString(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return ""; } } [3]实例化json数据,传送给unity TallScene scene = new TallScene(); scene.getFirstScene().setSexwoman(sex2); scene.getFirstScene().setSexman(sex1); scene.getSecondScene().setAction("secondanimation.assetbundle"); scene.getSecondScene().setBackground(""); scene.getThirdScene().setAction("ACHuge.assetbundle"); scene.getThirdScene().setBackground("BGYinXing.assetbundle"); scene.getThirdScene().setText("you are my heart!"); scene.getThirdScene().setTime("ACHuge.assetbundle"); scene.getFourScene().setText("自定义文字"); scene.getFourScene().setInjection("huapen.assetbundle"); String first=CreateJson.createJson(scene); UnityPlayer.UnitySendMessage("Directional Light","ReceiveJson",first);
一、在实现两者间的交互过程当中,须要双方都打印出log,这样才能更好的看出问题在哪。关键点一是调用的方法,二是传送的数据格式,三是文件存储的路径和读取的路径。
二、沟通很重要,文字表达要准确,是下载文件打印log就说下载文件,是读取文件就打印读取文件,即便方法名叫download,但以实现的功能为标准。
三、unity在android中调试会不停的更改unity的版本,这时你只须要按照unity3d项目导入android studio,在这个的基础上将main文件下assets文件和jniLibs文件delete,而后将新的unity3d项目libs文件里的三个文件拷贝到android下libs文件下覆盖掉原来的便可。调试
开学了,做为一名大三的学生,即将走出社会,有迷茫,有梦想,却困在其中走也走不出去。
最近看了一本书叫《由于痛,因此叫青春》,很喜欢里面的一句话code
人生从不嫌弃太年轻或太老。对象
你就是人生的赢家!我没有统治世界的愿望,只有想要改变本身命运的决心,我想作人生的大赢家。blog
精心准备,等待属于个人时机出现,把握住每个机会,你就是人生的赢家。游戏