UnityにSocialConnectorをインポートし、名前空間で使用しているにもかかわらず、
SocialConnector.Share(tweetText, tweetURL, imgPath);の部分が下記エラーとなってしまいます。
Assets/script/SNS/SNS.cs(34,9): error CS0234: The type or namespace name 'Share' does not exist in the namespace 'SocialConnector' (are you missing an assembly reference?)
現在私が使用しているスクリプトとSocialConnectorの該当スクリプトの抜粋を下記に記載します。
問題点がございましたらご教示いただければ幸いです。何卒よろしくお願いいたします。
C#
1using UnityEngine; 2using System.IO; 3using System.Collections; 4using SocialConnector; 5using UnityEngine.UI; 6 7public class SNS : MonoBehaviour 8{ 9 public void Share() 10 { 11 StartCoroutine(_Share()); 12 } 13 14 public IEnumerator _Share() 15 { 16 string imgPath = Application.persistentDataPath + "/image.png"; 17 18 // 前回のデータを削除 19 File.Delete(imgPath); 20 21 //スクリーンショットを撮影 22 ScreenCapture.CaptureScreenshot("image.png"); 23 24 // 撮影画像の保存が完了するまで待機 25 while (true) 26 { 27 if (File.Exists(imgPath)) break; 28 yield return null; 29 } 30 31 // 投稿する 32 string tweetText = ""; 33 string tweetURL = ""; 34 SocialConnector.Share(tweetText, tweetURL, imgPath); 35 } 36} 37
C#
1using UnityEngine; 2 3#if UNITY_IPHONE 4 5using System.Runtime.InteropServices; 6 7#endif 8 9namespace SocialConnector 10{ 11 public class SocialConnector 12 { 13 #if UNITY_IPHONE 14 [DllImport ("__Internal")] 15 private static extern void SocialConnector_Share (string text, string url, string textureUrl); 16 17 18 #elif UNITY_ANDROID 19 private static AndroidJavaObject clazz = new AndroidJavaClass ("com.unity3d.player.UnityPlayer"); 20 private static AndroidJavaObject activity = clazz.GetStatic<AndroidJavaObject> ("currentActivity"); 21 #endif 22 23 #if UNITY_IPHONE 24 25 private static void _Share (string text, string url, string textureUrl) 26 { 27 SocialConnector_Share (text, url, textureUrl); 28 } 29 30 31 #elif UNITY_ANDROID 32 33 private static void _Share (string text, string url, string textureUrl) 34 { 35 using (var intent = new AndroidJavaObject ("android.content.Intent")) { 36 intent.Call<AndroidJavaObject> ("setAction", "android.intent.action.SEND"); 37 intent.Call<AndroidJavaObject> ("setType", string.IsNullOrEmpty (textureUrl) ? "text/plain" : "image/png"); 38 39 if (!string.IsNullOrEmpty (url)) 40 text += "\t" + url; 41 if (!string.IsNullOrEmpty (text)) 42 intent.Call<AndroidJavaObject> ("putExtra", "android.intent.extra.TEXT", text); 43 44 if (!string.IsNullOrEmpty (textureUrl)) { 45 46 var versionClazz = new AndroidJavaClass("android.os.Build$VERSION"); 47 var apiLevel = versionClazz.GetStatic<int>("SDK_INT"); 48 AndroidJavaObject uri; 49 if(24 <= apiLevel) { 50 var context = activity.Call<AndroidJavaObject> ("getApplicationContext"); 51 var fileProvider = new AndroidJavaClass("android.support.v4.content.FileProvider"); 52 var file = new AndroidJavaObject ("java.io.File", textureUrl); 53 uri = fileProvider.CallStatic<AndroidJavaObject>("getUriForFile", context, Application.identifier + ".fileprovider", file); 54 } else { 55 var uriClazz = new AndroidJavaClass ("android.net.Uri"); 56 var file = new AndroidJavaObject ("java.io.File", textureUrl); 57 uri = uriClazz.CallStatic<AndroidJavaObject> ("fromFile", file); 58 } 59 intent.Call<AndroidJavaObject> ("putExtra", "android.intent.extra.STREAM", uri); 60 } 61 var chooser = intent.CallStatic<AndroidJavaObject> ("createChooser", intent, ""); 62 chooser.Call<AndroidJavaObject> ("putExtra", "android.intent.extra.EXTRA_INITIAL_INTENTS", intent); 63 activity.Call ("startActivity", chooser); 64 } 65 } 66 #endif 67 68 public static void Share (string text) 69 { 70 Share (text, null, null); 71 } 72 73 public static void Share (string text, string url) 74 { 75 Share (text, url, null); 76 } 77 78 public static void Share (string text, string url, string textureUrl) 79 { 80#if UNITY_ANDROID || UNITY_IPHONE 81 _Share (text, url, textureUrl); 82#endif 83 } 84 } 85} 86
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/27 02:59