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

news2024/12/24 2:30:40

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
————————————————————————————————

💢💢版权声明

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1128.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】Linux环境搭建

​🌠 作者:阿亮joy. 🎆专栏:《学会Linux》 🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉Linux的介…

【QT 自研上位机 与 STM32F103下位机联调>>>通信测试-基础样例-联合文章】

【QT 自研上位机 与 STM32F103下位机联调>>>通信测试-基础样例-联合文章】1、概述2、实验环境3、联合文章(1)对于上位机,可以参照如下例子(2)对于下位机,可以参照如下例子4、QT上位机部分第一步&a…

python中os库的使用

目录介绍1 listdir(path: str)2 path.isdir(path: str)3 path.isfile(path: str)4 path.join(path: str, file: str)5 path.getsize(path: str)介绍 本博客记录python中os库的一些函数使用。 1 listdir(path: str) listdir()函数输入一个目录,返回该目录下的所有…

web前端 html+css+javascript游戏网页设计实例 (网页制作课作业)

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

数字化浪潮下,低代码能否加速企业的数字化转型

随着加快建设数字中国的目标明确下来,市场上与数字化相关的企业都得到了极大鼓舞,这不仅意味着后续数字领域的加速发展,更是代表着数字化已经完全可以向各行各业拓展,大力推进数字化建设。数字中国也说明了数字化并不能只是限制在…

FastTunnel Win10内网穿透实现远程桌面

目录 一、需求 二、购买公网服务器 三、远程公网服务器 四、FastTunnel 的使用 1.下载 FastTunnel 2.启动服务器端 3.启动客户端 五、测试 六、安装服务 结束 一、需求 FastTunnel 简介 高性能跨平台内网穿透工具,使用它可以实现将内网服务暴露到公网供…

【数据结构与算法】时间复杂度和空间复杂度

✨ 个人主页:bit me ✨ 当前专栏:数据结构 🌟每日一语:窗外有风景 笔下有前途 低头是题海 抬头是鹏程 时间复杂度和空间复杂度的认知🌎 一. 如何衡量一个算法的好坏🌙 二. 算法效率🪐 三. 时间…

Word处理控件Aspose.Words功能演示:在 Python 中将 TXT 文件转换为 PDF

各种人使用记事本以TXT格式记下重点或快速创建笔记。此外,TXT 文件用于在各种应用程序中存储纯文本。但是,由于记事本不提供高级功能,因此 TXT 文件通常会转换为PDF。为了以编程方式自动将 TXT 转换为 PDF,本文介绍了如何在 Pytho…

WEB API 接口签名sign验证入门与实战

目录参考什么是加解密加密方式分类对称加密技术非对称加密技术(RSA加密算法)(数字证书)场景1:公钥加密,私钥解密场景2:秘钥加密:数字签名,公钥解密:验证签名M…

从位运算理解位图

位图是一种较难理解的数据结构,想了解位图,我需要先温习一下基础,复习下一些二进制的知识 位运算 1个字节8个二进制位 二进制每逢二进一,下面是二进制对应的十进制转换方式 二进制十进制0000 00012^010000 00102^120000 00112…

用户故事地图怎么用?实践才能出真知

在产品设计和交互过程中,用户体验是一个非常重要的部分。 随着产品的逐渐完善,主创团队也需要通过各个维度来了解用户需求,完善用户的整体体验。在这里,我们经常用到的一个实践是用户故事地图。 一、用户故事地图是什么&#xff…

【Linux】指令及权限管理的学习总结

文章目录1️⃣ Linux的文件系统结构简介2️⃣ Linux下的基本指令1. ls2. pwd3. cd4. touch5. mkdir6. rm7. rmdir8. cp9. mv10. cat11. more12. less13. head14. tail15. find16. grep17. zip18. unzip19. tar20. uname3️⃣ Linux下的权限权限管理1. 文件的访问者分类&#xf…

【C++】多态

1.多态 1.1多态的概念: 多态:就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。李明要吃饭,那就要吃早饭,午饭,晚饭,而不是一天只吃午饭这种单一…

Java多线程(4):ThreadLocal

您好,我是湘王,这是我的CSDN博客,欢迎您来,欢迎您再来~ 为了提高CPU的利用率,工程师们创造了多线程。但是线程们说:要有光!(为了减少线程创建(T1启动&#xf…

Synchronized底层核心原理

前言:大家好,我是小威,24届毕业生,在一家满意的公司实习。本篇文章是关于并发编程中Synchronized锁的底层核心原理知识记录,由于篇幅原因,下篇文章将介绍各种锁的优化原理。 本篇文章记录的基础知识&#x…

vue3 异步组件

前端开发经常遇到异步的问题&#xff0c;请求函数&#xff0c;链接库&#xff0c;等&#xff0c;都有可能需要通过promise或者async await 来进行异步的一个封装。 异步组件也由此诞生&#xff0c;我用settimeout来模拟一个vue3的异步组件 异步的子组件 <template><…

spring框架源码十三、spring ioc高级特性-后置处理器

spring ioc高级特性-后置处理器BeanPostProcessor实例MyBeanPostProcessorapplication-context.xmlTestServiceImpl测试BeanFactoryPostProcessorspring提供了两种后置处理bean的扩展接口&#xff0c; 分别为BeanPostProcessor和BeanFactoryPostProcessor&#xff0c; BeanPos…

攻防世界WEB练习 | easyphp

目录 题目场景 代码分析 找到flag 题目场景 代码分析 if(isset($a) && intval($a) > 6000000 && strlen($a) < 3) isset&#xff1a;检查变量是否设置 intval&#xff1a;检查变量是否为int型 strlen&#xff1a;检查变量的长度 要求a存在且大于6…

Matlab之多平台雷达检测融合仿真(附源码)

此示例演示如何融合来自多平台雷达网络的雷达检测。该网络包括两个机载和一个地面远程雷达平台。中央跟踪器以固定的更新间隔处理来自所有平台的检测。这能够根据目标类型、平台机动以及平台配置和位置评估网络的性能。 一、定义中央跟踪器 将trackerGNN用作中央跟踪器&#…

云原生时代下,如何打造开源监控体系?宏时数据在GOPS与你相聚

相聚上海 宏时数据受邀出席2022 GOPS全球运维大会上海站&#xff0c;将分享演讲&#xff01; 时间&#xff1a;2022年10月28日15:20-15:40 AIOps最佳实践及解决方案专场 同时展位在301&#xff0c;现场有丰富礼品&#xff0c;快来做任务夺宝&#xff01; 还有Zabbix高级认…