当前位置: 首页 > news >正文

Unity 分享 功能 用Unity Native Share Plugin 实现链接、图片、视频等文件的分享+ 安卓 Ios 都可以,代码图文详解

Unity 分享 功能 用Unity Native Share Plugin 实现链接、图片、视频等文件的分享+ 安卓 Ios 都可以,代码图文详解

  • 前言
    • 环境
    • 效果
  • 一、Unity Native Share Plugin导入
    • 1.下载
    • 2.导入
  • 二、案例
    • 1.分享文字
      • 1.脚本
      • 2.发包注意
    • 2.分享视频
      • 1.完善下刚才的脚本
      • 2.给复制按钮添加点击事件
      • 3.注意
  • 总结
  • 💢💢版权声明


前言

今天有需求,要实现的功能大致如下:
在安卓和ios端实现分享功能
可以分享链接,图片,文字,视频,文件,等

环境

unity版本:2020.3.22
插件:Unity Native Share Plugin

效果

这个是分享视频的效果,安卓和ios均可以正常分享
老样子,先上效果请添加图片描述


一、Unity Native Share Plugin导入

1.下载

用到的插件是Unity Native Share Plugin,可以去官方直接下载https://github.com/yasirkula/UnityNativeShare,官方网站上也有对应的API的用法。
或者去unity商店,是免费的商店地址

2.导入

商店添加后,可以通过unity的package Manager直接导入
在这里插入图片描述
导入成功后,如上图所示

二、案例

1.分享文字

1.脚本

unity新建场景,添加button,编写脚本NativeShareScript.cs

using System.Collections;
using System.IO;
using UnityEngine;
using UnityEngine.Networking;

public class test : MonoBehaviour
{
    public void ShareTest()
    {
        new NativeShare().SetText("https://www.baidu.com/").Share();
    }  
}

脚本挂载到场景中,button上添加点击事件
在这里插入图片描述

2.发包注意

大功告成,开始发包,安卓无需特殊设置直接发包
ios需要看下Project Setting-yasirkula-NativeShare是否有勾选和内容填写,如下图
在这里插入图片描述
运行效果图如下
在这里插入图片描述

2.分享视频

视频的分享稍微麻烦点,大体流程就是需要知道视频的实际路径才行
我是直接把StreamingAssets复制到persistentDataPath路径下,然后才分享的,直接StreamingAssets路径下是无法分享的

1.完善下刚才的脚本

完善后如下

using System.Collections;
using System.IO;
using UnityEngine;
using UnityEngine.Networking;

public class test : MonoBehaviour
{
     public void ShareTest()
    {
        new NativeShare().AddFile(Application.persistentDataPath + "/QQVideo.mp4", null).Share();
    }

    public void StartCopy()
    {
#if UNITY_ANDROID
        StartCoroutine(CopyFile());
#endif
#if UNITY_IOS
        File.Copy(Application.streamingAssetsPath+"/QQVideo.mp4",Application.persistentDataPath+"/QQVideo.mp4");
#endif
    }

    IEnumerator CopyFile()
    {
        UnityWebRequest request = UnityWebRequest.Get(Application.streamingAssetsPath + "/QQVideo.mp4");
        yield return request.SendWebRequest();
        File.WriteAllBytes(Application.persistentDataPath + "/QQVideo.mp4", request.downloadHandler.data);
    }
    
}

为了图省事,我ui上又加了个复制视频的按钮,然后才是分享

2.给复制按钮添加点击事件

在这里插入图片描述
然后就可以发包测试了,结果解释开头的效果图

3.注意

1.要确保分享的视频在手机上播放时没问题的,注意脚本里视频格式的统一。
2.streamingAssets在安卓下,只能用UnityWebRequest 去读,在ios下,只能用File去读。

总结

欢迎大佬多多来给萌新指正,欢迎大家来共同探讨。
如果各位看官觉得文章有点点帮助,跪求各位给点个“一键三连”,谢啦~

声明:本博文章若非特殊注明皆为原创原文链接
https://blog.csdn.net/Wrinkle2017/article/details/127518571
————————————————————————————————

💢💢版权声明

版权声明:本博客为非营利性个人原创
所刊登的所有作品的著作权均为本人所拥有
本人保留所有法定权利,违者必究!
对于需要复制、转载、链接和传播博客文章或内容的
请及时和本博主进行联系
对于经本博主明确授权和许可使用文章及内容的
使用时请注明文章或内容出处并注明网址
转载请附上原文出处链接及本声明

相关文章:

  • 基于javaweb的嘟嘟二手书商城系统(java+jsp+springboot+mysql+thymeleaf+ftp)
  • 2.1.1 操作系统之进程的定义、特征、组成、组织
  • 一文了解数据结构
  • [LeetCode刷题笔记]4 - 寻找两个正序数组的中位数(归并 / 递归 / 二分查找)
  • 字符串的读入(char与string)
  • C++运算符重载函数
  • 图解操作系统-cpu cache
  • 软件测试怎么去介绍一个项目的测试流程?
  • Redis实战篇一 (短信登录)
  • SpringBoot使用在控制层切面注解配置的方式将日志存储在mysql
  • 二叉树小记
  • 使用SpringBoot整合国产数据库连接池Druid
  • Servlet的一些操作
  • 设计模式 1 - 单例模式:附全套 Git 简洁代码
  • 模板·初阶
  • 【MATLAB教程案例30】基于MATLAB的图像阴影检测和消除算法的实现
  • 字符串拼接