facebook twitter hatena line email

Unity/画像共有/NatShare

提供: 初心者エンジニアの簡易メモ
2022年6月14日 (火) 06:43時点におけるAdmin (トーク | 投稿記録)による版 (DL&Import)

移動: 案内検索

NatShareとは

画像共有プラグイン

androidはversion7.0以上のみ対応

参考:https://nobushiueshi.com/unitysns%E5%85%B1%E6%9C%89%E3%81%AFnatshare%E3%81%8C%E3%81%8A%E3%81%99%E3%81%99%E3%82%81/

DL&Import

NatShare(github):https://github.com/natmlx/NatShare

githubのcodeからNatSuite-mainをDLし、Assets以下に設置。

x NatShare(UnityAssets):https://assetstore.unity.com/packages/tools/integration/natshare-mobile-sharing-api-117705

UnityAssetsでのインストールは、coreが競合する恐れがあるので、やめておく。

テキストと画像共有

using UnityEngine;
using UnityEngine.UI;
using NatSuite.Sharing;

public class SampleScene : MonoBehaviour
{
    void Start()
    {
        GameObject.Find("TextButton").GetComponent<Button>().onClick.AddListener(ShareText);
        GameObject.Find("ImageButton").GetComponent<Button>().onClick.AddListener(ShareImage);
        GameObject.Find("TextImageButton").GetComponent<Button>().onClick.AddListener(ShareTextImage);
    }
    // テキスト共有
    void ShareText()
    {
        var payload = new SharePayload();
        payload.AddText("ここに共有したいテキストを入力");
        payload.Commit();
    }
    // 画像共有
    void ShareImage()
    {
        var screenshot = ScreenCapture.CaptureScreenshotAsTexture();
        var payload = new SharePayload();
        payload.AddImage(screenshot);
        payload.Commit();
    }
    // テキスト&画像共有
    void ShareTextImage()
    {
        var screenshot = ScreenCapture.CaptureScreenshotAsTexture();
        var payload = new SharePayload();
        payload.AddText("ここに共有したいテキストを入力");
        payload.AddImage(screenshot);
        payload.Commit();
    }
}

Androidビルド時にcore-1.6.0とjetified-core-1.0.0-rc02が競合するとき

エラー詳細

java.lang.RuntimeException: Duplicate class android.support.v4.graphics.drawable.IconCompatParcelizer found in modules core-1.6.0-runtime.jar (androidx.core:core:1.6.0) and jetified-core-1.0.0-rc02-runtime.jar (:core-1.0.0-rc02:)

対応方法

  1. Unityメインメニュー/Assets/External Dependency Manager/Android Resolver/Delete Resolved Libraries
  2. Unityメインメニュー/Assets/External Dependency Manager/Android Resolver/Force Resolve
  3. locateで検索して、それっぽいファイルを削除。もしくは~/.gradle/cachesを削除
$ locate jetified-core-1.0.0-rc02
~/.gradle/caches/transforms-2/files-2.1/46325b7ccde40e48f551cf4658602553/jetified-core-1.0.0-rc02
$ locate core-1.6.0
~/.gradle/caches/transforms-2/files-2.1/736821b08ce43c689e56359e237cf55e/core-1.6.0

Force Resolveしたら、改善せずでした・・

参考:https://marumaro7.hatenablog.com/entry/natshareerror