• “舌尖”之后, “风味”能否再续辉煌? 2019-09-17
  • 腾讯要花32亿收购《绝地求生》开发商10%股份 2019-09-17
  • 涨知识!文字里的秘密 最全甲骨文书展来了 2019-09-13
  • 晋中市着力将“厕所革命”进行到底 2019-09-05
  • 供应链如何更“智慧” 2019-09-05
  • 红枣食疗效果好 6种吃法最滋补-美食资讯 2019-09-01
  • 党的十九大最重大的理论成就 2019-08-28
  • 余世存:阅读经典不仅是消费,也是责任 2019-08-20
  • 实干树形象 实绩惠民生——“两学一做”特别关注 2019-08-20
  • 曲速引擎:曾被寄予厚望 现遭“一瓢冷水” 2019-08-18
  • 毛泽东说帝国主义都是纸老虎。是有社会基础的 2019-08-07
  • 外国人就医计划示范医院授牌 天津医院泰达医院获认定 2019-07-21
  • 文体 —频道 春城壹网 七彩云南 一网天下 2019-07-18
  • 【理上网来喜迎十九大】苏格:习近平总书记外交思想领航中国特色大国外交 2019-07-18
  • 8种家居环境很败“性” 2019-06-28
  • 蓬莱仙羽

    福彩36选7开奖结果今天: [Unity3D]Unity+Android交互教程——让手机"动"起来

    福建36选7和值走势图 www.00-na.com 热度 178442 2014-4-26 01:01 |个人分类:Unity3D| UnityAndroid交互

    想要用Unity实现一个二维码扫描的功能,然后网上找插件,找到一个貌似叫EasyCodeScanner,但下载下来用用,真不好使,一导入运行就报错,调好错了再运行发现点按钮没反应,反复试了几遍发现还是没反应,没办法看源码,结果发现只实现了IOS部分,没有部分,我屮艸芔茻...,神伤!用IOS真机测试吧,还是有问题,果断放弃了,下定决心自己动手丰衣足食,虽然不了解Android,但没有学不起来的,只要想,就没有实现不了的?。?!首先还是得学习一下Android和Unity的简单交互,在这儿写个详细点的教程!供初学者学习,当然网上也有这方面的教程,有的地方不注意的话,还是会碰到困扰的,下面是详细步骤!更多教程敬请关注我的微博!

    效果这里展示的Unity调用Android原生的方法实现点击Unity界面中的按钮,然后实现手机的震动!

    关于最基本的交互,可以参考这篇文章,Unity与Android基本交互,然后在这基础之上来做实现手机震动,其实也差不多!可能重复了,当自我巩固吧,呵呵!

    测试方法:必须要真机测试?。?!

    实现步骤:

    一、创建Android工程

    1.创建工程



    2.导入Unity相关jar

    Jar目录:unity的安装路径\Editor\Data\PlaybackEngines\androidplayer\bin下的classes.jar



    3.打开MainActivity.java,导入各种包,编写自己的函数

    package com.example.clickshake;
    
    import android.os.Bundle;
    import com.福建36选7和值走势图.player.UnityPlayerActivity;
    import android.app.Service;
    import android.os.Vibrator;  //震动的包
    
    public class MainActivity extends UnityPlayerActivity {
    
    	private Vibrator mVibrator01;//声明一个振动器对象
    	
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    	}
    	
    	//震动函数
    	public void ClickShake()
    	{
    		mVibrator01 = (Vibrator)getApplication().getSystemService(Service.VIBRATOR_SERVICE); 
    		mVibrator01.vibrate(new long[]{100,10,100,1000},-1);//自定义整栋模式,只震动一次
    	}
    	
    	
    	//判断大小
    	public int Max(int a,int b)
    	{
    		if(a>b)
    			return a;
    		return b;
    	}
    
    }
    

    添加unityActivity,使MainActivity继承UnityPlayerActivity,并把SetContentView函数删掉(不然到手机上启动程序的时候就会只看到一句HelloWorld),这里有两个自己自定义的函数主要的就是上面的没有参数的调用振动器的自定义函数,还有个就是有返回值有参数的比较大小的函数,这里用两个不同的函数在Unity中调用做对比!

    4.修改XML并且添加震动权限

    添加允许震动的权限,选择AndroidManifest.xml,然后点击Permissions->Add UserPermission->android.perssion.VIBRATE。

    5.导出jar包

    在项目根目录上右击->Export




    点击Finish结束!

    二、创建Unity工程

    1.在Assets下创建Plugins/Android文件夹,这个文件夹是特殊文件夹,专门用与存放Android的包文件,以便调用Android接口

    将文件的xml,jar,res,libs文件放在Android文件下


    2.写Unity调用Android代码

    using UnityEngine;
    using System.Collections;
    
    public class NewBehaviourScript : MonoBehaviour {
    
    
        private AndroidJavaObject activity;
        private int res = 0;
    	// Use this for initialization
    	void Start () {
    		AndroidJavaClass jc=new AndroidJavaClass("com.unity3d.player.UnityPlayer");
            activity = jc.GetStatic<AndroidJavaObject>("currentActivity");
            res = activity.Call<int>("Max", new object[] { 10, 20 });
    	}
    
        void OnGUI()
        {
            GUI.Label(new Rect(20, 20, 300, 20), "调用的Android方法:求出10和20中比较大的数字是"+res.ToString());
            GUI.Label(new Rect(20, 70, 300, 20), "//blog.csdn.net/dingxiaowei2013");
            if ( GUI.Button(new Rect(Screen.width / 2 - 20, Screen.height / 2 + 20, 100, 40), "点击震动"))
            {
                activity.Call("ClickShake");
            }
            
        }
    }
    

    说明AndroidJavaObject是一个java对象,这里获取的是java视图,然后调用自定义方法。
    (注:初步了解这里的参数之所以填”com.unity3d.player.UnityPlayer”和”currentActivity”,是因为在生成jar文件的时候,已经指定了MainActivityclass继承UnityPlayerActivity,也在XML指定了MainActivity是Main class)
    activity.Call<int>("","");这个调用的是有返回值的方法,int是返回类型,activity.Call("");调用的是没返回值没参数的方法

    3.导出设置(Importent)



    4.真机测试

    我就不上传截图了,大概就是一个按钮,能够点击使手机震动,还有一个label,显示10和20比较的结果值。

    更多教程欢迎关注 我的微博//weibo.com/dingxiaowei2013

    加群交流:375151422

    发表评论 评论 (12 个评论)

    回复 叫我“大叔” 2014-4-27 11:03
    我不是搞Android的,既然学习,就先收藏,以后再用,谢楼主
    回复 Prince 2014-4-28 08:37
    mark
    回复 蓬莱仙羽 2014-4-28 09:03
    叫我“大叔”: 我不是搞Android的,既然学习,就先收藏,以后再用,谢楼主
    共同学习
    回复 253135364 2014-5-2 21:59
    mVibrator01 = (Vibrator)getApplication().getSystemService(Service.VIBRATOR_SERVICE);
    我这一句会报错   我不知道为什么  QQ253135364  有时间时请指导下
    回复 蓬莱仙羽 2014-5-4 17:02
    Prince: mark
    good
    回复 buleAries 2014-7-4 14:38
    丁小未?the  nine  city  ..........right?
    回复 蓬莱仙羽 2014-7-4 22:44
    buleAries: 丁小未?the  nine  city  ..........right?
    不要跟我提它 一个不堪回首的记忆 恨的咬牙切齿
    回复 buleAries 2014-7-5 09:52
    蓬莱仙羽: 不要跟我提它 一个不堪回首的记忆 恨的咬牙切齿
    何必,反正你已经比同届的高出不少水平了,我就要向你看齐呢,呵呵,至于我出来后的遭遇,心里也是一样耿耿于怀,但是奈何我自己也不争气,太多不会,只好加班加点恶补知识
    回复 爱诺娃 2014-8-2 16:25
    为什么真机运行会闪退
    回复 蓬莱仙羽 2015-11-3 09:02
    爱诺娃: 为什么真机运行会闪退
    可能跟我当时的版本环境不一样
    回复 pilibengpa 2016-5-23 16:14
    牛逼,好使~ 就是那个res文件夹有问题,拖入进去之后会,打包程序的时候会报错~~~
    解决方法是 修改那个   AndroidManifest.xml    里的
    android:theme="@android:style/Theme.NoTitleBar"
    android:icon="@drawable/app_icon"
    android:label="@string/app_name"
    这三行,
    就可以不用把"res"文件夹拖到 U3D里了
    回复 pilibengpa 2016-5-23 16:14
    牛逼,好使~ 就是那个res文件夹有问题,拖入进去之后会,打包程序的时候会报错~~~
    解决方法是 修改那个   AndroidManifest.xml    里的
    android:theme="@android:style/Theme.NoTitleBar"
    android:icon="@drawable/app_icon"
    android:label="@string/app_name"
    这三行,
    就可以不用把"res"文件夹拖到 U3D里了

    facelist doodle 涂鸦板

    您需要登录后才可以评论 登录 | 注册帐号

  • “舌尖”之后, “风味”能否再续辉煌? 2019-09-17
  • 腾讯要花32亿收购《绝地求生》开发商10%股份 2019-09-17
  • 涨知识!文字里的秘密 最全甲骨文书展来了 2019-09-13
  • 晋中市着力将“厕所革命”进行到底 2019-09-05
  • 供应链如何更“智慧” 2019-09-05
  • 红枣食疗效果好 6种吃法最滋补-美食资讯 2019-09-01
  • 党的十九大最重大的理论成就 2019-08-28
  • 余世存:阅读经典不仅是消费,也是责任 2019-08-20
  • 实干树形象 实绩惠民生——“两学一做”特别关注 2019-08-20
  • 曲速引擎:曾被寄予厚望 现遭“一瓢冷水” 2019-08-18
  • 毛泽东说帝国主义都是纸老虎。是有社会基础的 2019-08-07
  • 外国人就医计划示范医院授牌 天津医院泰达医院获认定 2019-07-21
  • 文体 —频道 春城壹网 七彩云南 一网天下 2019-07-18
  • 【理上网来喜迎十九大】苏格:习近平总书记外交思想领航中国特色大国外交 2019-07-18
  • 8种家居环境很败“性” 2019-06-28
  • 竞彩混合过关奖金算法 深圳风采2019028 好彩36 重庆时时彩APP苹果 瑞幸咖啡不收现金 五大联赛是哪五大 有网络赚钱的方式吗 河北体彩七星彩走势图带连线 北京时时彩3分钟开奖结果查询 云南省的三张牌部署 辽宁十一选五500期开奖结果 淘宝足球总进球数 浙江20选5号码走势图 彩票中心下载 pc蛋蛋加拿大算法