`
wang_peng1
  • 浏览: 3944283 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

unity 实现OnCompletionListener 使用AndroidJavaProxy

 
阅读更多
public class CompletionCallback : AndroidJavaProxy {

        public CompletionCallback()
        :base("android.media.MediaPlayer$OnCompletionListener") {
        }

        void onCompletion(AndroidJavaObject mp) {
            CommonUtil.showToast("finish");
        }
    }

 

using UnityEngine;
using System.Collections;

public class SelectedDate : MonoBehaviour {
    public static Date date = System.DateTime.Now;
}

public class DateCallback : AndroidJavaProxy {
    public DateCallback()
        :base("android.app.DatePickerDialog$OnDateSetListener")
    {
    }

    void onDateSet(AndroidJavaObject view, int year, int monthOfYear, int dayOfMonth) {
        SelectedDate.date = new Date(year, monthOfYear + 1, dayOfMonth);
    }
}

public class ExampleClass : MonoBehaviour {
    void OnGUI() {
        if (GUI.Button(new Rect(10, 10, 450, 100), String.Format("{0:yyyy-MM-dd}", SelectedDate.date))) {
            AndroidJavaObject activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");
            activity.Call(
                "runOnUiThread",
                AndroidJavaRunnable(
                    new AndroidJavaObject(
                        "android.app.DatePickerDialog",
                        activity,
                        new DateCallback(),
                        SelectedDate.date.Year,
                        SelectedDate.date.Month - 1,
                        SelectedDate.date.Day
                    ).Call("show");
                )
            );
        }
    }
}

 

ExActivityListener.java
public interface ExActivityListener
{
    public void onRestart();

    public void onStart();

    public void onResume();

    public void onPause();

    public void onStop();

    public void onActivityResult(int requestCode, int resultCode, Intent data);
}

 

ExActivity.java
public class ExActivity extends com.unity3d.player.UnityPlayerActivity
{
    private ExActivityListener listener;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
    }

    public void setListener(ExActivityListener listener)
    {
        this.listener = listener;
    }

    @Override
    puglic void onRestart()
    {
        super.onRestart();
        if(listener != null) listener.onRestart();
    }

    @Override
    puglic void onStart()
    {
        super.onStart();
        if(listener != null) listener.onStart();
    }

    @Override
    puglic void onResume()
    {
        super.onResume();
        if(listener != null) listener.onResume();
    }

    @Override
    puglic void onPause()
    {
        super.onPause();
        if(listener != null) listener.onPause();
    }

    @Override
    puglic void onStop()
    {
        if(listener != null) listener.onStop();
        super.onStop();
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        if(listener != null) listener.onActivityResult(requestCode, resultCode, data);
    }
}

 

public class Hoge : MonoBehavior
{
    public class ActivityListener : AndroidJavaProxy
    {
        public ActivityListener()
            : base("com.hoge.ExActivityListener")
        {
        }

        puglic void onRestart()
        {
        }

        puglic void onStart()
        {
        }

        puglic void onResume()
        {
        }

        puglic void onPause()
        {
        }

        puglic void onStop()
        {
        }

        public void onActivityResult(int requestCode, int resultCode, AndroidJavaObject data)
        {
        }
    }

    void Awake()
    {
        AndroidJavaObject activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");

        activity.Call("setListener", new ActivityListener());
    }
}

 

分享到:
评论

相关推荐

    Unity 与 Android 使用 AndroidJavaProxy 交互类似代理委托(aar包)

    Unity 与 Android 使用 AndroidJavaProxy 交互类似代理委托(aar包) 1、Android 定义 接口 interface,并有设置实例化接口的函数,然后 打包 aar 2、导入 Unity,然后 public class TestInterface : ...

    unity实现简单抽奖系统

    在Unity中,我们可以使用图片来实现不同的效果。在本系统中,我们使用圆形图片来表示奖品,并使用Image组件来控制图片的大小和概率。 知识点3: Unity中Text组件的使用 Text组件是Unity中的一种组件,用于显示文本。...

    unity 实现类似 wx 头像、图片的裁剪功能

    unity 实现类似 wx 头像、图片的裁剪功能

    unity实现录音并保存本地

    Unity是一款跨平台的游戏引擎,可以满足大多数游戏开发者的需求,本文将详细介绍如何使用Unity实现录音并保存本地,通过本文,读者可以了解到Unity中的录音实现原理和保存方法。 一、Unity中录音的实现原理 -------...

    unity实现车方向盘转动效果

    实现车方向盘转动效果需要使用到多种技术,包括获取屏幕坐标、计算角度、实现拖拽功能、更新模型的旋转、使用 C# 脚本、使用 Unity 的 Events、使用 RectTransform、使用 Camera、使用 Transform 和实现交互功能等。

    Unity实现文字滚动效果

    Unity实现文字滚动效果,可自适应文字长度,鼠标放入UI文字开始滚动,移出后恢复原位。

    unity实现屏幕上写字效果

    本文实例为大家分享了unity实现屏幕上写字效果的具体代码,供大家参考,具体内容如下 先建立一个RawImage,然后再在这个图片上加个LineRenderer组件,再建个材质球,把材质球的Shader改成Particles/Additive,把材质...

    Unity实现热力图.zip

    在Unity游戏引擎中实现热力图是一项常见的需求,特别是在游戏设计、数据分析或用户行为追踪等领域。热力图能够直观地展示场景中特定区域的热度分布,帮助开发者了解玩家的活动集中区域或者游戏内的热点。本教程将...

    Unity 实现UI窗口拖拽缩放

    在Unity里面实现UI窗口的操作,包含拖动,单边拖动缩放,对角拖拽缩放功能

    Unity 实现水滴效果

    在Unity引擎中,实现水滴效果是一个涉及到物理模拟、材质动画和编程技术的综合性任务。这个项目使用了C#语言来编写脚本,这表明它可能利用了Unity的内置组件和脚本系统来创建动态的水滴表现。下面将详细探讨实现...

    Unity实现画线条功能

    在 Unity 中实现画线条功能是游戏开发中的一个常见需求,本文将详细介绍如何使用 LineRender 组件来实现画线条功能,并提供了一个完整的示例代码。 知识点一:LineRender 组件的使用 LineRender 组件是 Unity 中的...

    Unity实现Image卷纸浏览效果

    在Unity中,可以使用各种技术来实现这一效果,如精灵(Sprite)动画、UI元素的RectTransform组件以及C#脚本来控制滚动行为。以下是一些关键知识点: 1. **UI系统**:Unity的UI系统(Unity UI)是一个强大的工具,...

    一个水墨、水彩画物理仿真的 Unity 实现源码+项目说明.zip

    【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考...一个水墨、水彩画物理仿真的 Unity 实现源码+项目说明.

    利用unity实现3d轮转图效果

    利用unity实现3d轮转图效果

    unity实现安卓开机自启

    unity打包安卓实现开机自启。本项目源码需要androidStudio4.1打开, unity使用方法:解压后把"androidAutoStar\app\build\outputs\aar\app-debug.aar"文件导入到unity项目中, 打包成功后安装到手机运行后重启手机,...

    基于Unity实现3D版2048游戏源码+教程.rar

    基于Unity实现3D版2048游戏源码+教程.rar基于Unity实现3D版2048游戏源码+教程.rar基于Unity实现3D版2048游戏源码+教程.rar基于Unity实现3D版2048游戏源码+教程.rar基于Unity实现3D版2048游戏源码+教程.rar基于Unity...

    Unity实现热力图(代码报错那行注释就好)

    提供的`Heatmap.unitypackage`文件可能包含预先封装好的热力图实现,导入这个包后,你可以直接使用其中的脚本和资源,或者作为参考来学习和理解热力图的实现方式。 总之,实现Unity热力图需要对数据处理、颜色映射...

    unity实现简单跑马灯效果

    本教程将详细介绍如何使用C#脚本来实现这一效果,并提供一个名为"RunLight"的示例项目供参考。 一、理解跑马灯效果 跑马灯效果,又称为滚动文字或走马灯,是指内容在一个固定区域内不断循环滚动,仿佛文字或图像在...

    Unity插件 实现 刮刮卡/刮刮乐 效果

    Unity插件实现刮刮卡/刮刮乐效果是一种在游戏或互动应用中常见的交互功能,它通常用于模拟现实生活中刮开覆盖层以揭示隐藏信息的行为。这款插件因其功能强大和适用广泛而备受关注,尤其适合于开发各种类型的游戏和...

    Unity实现音频播放器[QQ音乐,网易云等效果]

    首先,这个功能的实现仅为demo,给予正在实现本功能的小伙伴一点思路.如果帮到了一些人也属初心所向,不喜勿喷! ## 逻辑 主要依赖于**UGUI Scroll View**通过调用它的**verticalNormalizedPosition**属性来实现轮播...

Global site tag (gtag.js) - Google Analytics