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

news/2024/7/20 21:35:03 标签: unity, android, 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
————————————————————————————————

💢💢版权声明

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


http://www.niftyadmin.cn/n/975.html

相关文章

内存探究之关于32位机与64位机

前言:昨天做了一个笔试题,里面有一道关于内存探究的题,之前也看过,不过没用机器实践过,有点类似只知晓理论的意味了,今日上午闲暇无事,于是去探究了一下内存在机器里面的实际情况是那样&#xf…

【SpringBoot笔记13】SpringBoot框架之拦截器的使用

这篇文章,主要介绍SpringBoot框架中拦截器的使用。 目录 一、SpringBoot拦截器 1.1、创建拦截器类 1.2、注册拦截器 (1)继承WebMvcConfigurerAdapter类 (2)实现WebMvcConfigurer接口 (3)继…

【Rust日报】2022-10-24 使用 Bevy 和 dfdx 解决经典的 Cart Pole问题

使用 Bevy 和 dfdx 解决经典的 Cart Pole问题解决经典的 Cart Pole 问题有很多种, 作者这里借用 dfdx 这个深度学习的库, 使用 Deep Q-Learning 的方法来解决.并且使用 Bevy 来构建展示的效果.原文链接: https://monadmonkey.com/bevy-dfdx-and-the-classic-cart-poleMacroKata…

面试面麻了,别再为难软件测试人员了···

前言 有不少技术友在测试群里讨论,近期的面试越来越难了,要背的八股文越来越多了,考察得越来越细,越来越底层,明摆着就是想让我们徒手造航母嘛!实在是太为难我们这些测试工程师了。 这不,为了帮大家节约时…

【python】之字典及其操作

个人主页:天寒雨落的博客_CSDN博客-C,CSDN竞赛,python领域博主 特别标注:仅为自己的学习记录笔记,方便复习和加深记忆,仅供借鉴参考! 目录 前言 字典的创建 格式 字典名{key1:value1,key2:value2......} 字典名di…

Python常用库1:collections,容器数据类型

collections:数据容器 点这里跳到原文地址。预计阅读时长:10分钟未完待续,遇到相关力扣题目,会继续补充~ 文章目录前言一、Collections中的内置函数二、各个函数的使用1. deque1.1 deque的介绍1.2 deque支持的方法1.3 使用deque解…

[SpringBoot] Spring Boot注册Web原生组件/拦截器HandlerInterceptor

✨✨个人主页:沫洺的主页 📚📚系列专栏: 📖 JavaWeb专栏📖 JavaSE专栏 📖 Java基础专栏📖vue3专栏 📖MyBatis专栏📖Spring专栏📖SpringMVC专栏📖SpringBoot专…

Uniapp零基础开发学习笔记(9) -媒体组件音视频摄像头等的练习使用

Uniapp零基础开发学习笔记(9) -媒体组件音视频摄像头等的练习使用 基础组件部分,最后就只剩余媒体组件以及地图,和画布Canvas,以及浏览器组件web-view。 此次先看看媒体组件,重点学习前面几个。 链接如下: https://uniapp.dcloud…