Xcodeでのビルドエラーが解決できません。
UnityでiOSネイティブのMapKitを使おうとしています。
どのように記述し直せばエラーが消えますでしょうか。
【エラー内容】:SwiftToUnityBridge.mm:6:32: No visible @interface for 'SwiftToUnity' declares the selector 'showMapWithFrame:placeJson:'
【SwiftToUnityBridge.mm】
#import <UnityFramework/UnityFramework-Swift.h> extern "C" { void showMap(float x, float y, float width, float height, char *placeJ) { [[SwiftToUnity shared] showMapWithFrame:CGRectMake(x, y, width, height) placeJson:[NSString stringWithUTF8String:placeJson]]; } }
【SwiftToUnity.Swift】
import Foundation import MapKit @objc public class SwiftToUnity: NSObject { @objc public static let shared = SwiftToUnity() @objc static func showMap(frame:CGRect, placeJson: String) { guard let view = UnityGetGLView() else { return } let mapView = MKMapView(frame: frame) // Unityから送られてくるピン情報はJSONなので、パースする。 let jsonData = placeJson.data(using: .utf8)! let decoder = JSONDecoder() let placeList = try! decoder.decode(PlaceList.self, from: jsonData) placeList.places.forEach { // ピンを配置する let annotation = MKPointAnnotation() annotation.coordinate = CLLocationCoordinate2DMake($0.latitude, $0.longitude) annotation.title = $0.title mapView.addAnnotation(annotation) } view.addSubview(mapView) } } /// ピン情報のリスト (UnityのJsonUtilityが配列がルートのJSONに対応していないため struct PlaceList: Codable { let places: [Place] } /// ピン情報のモデル struct Place: Codable { let id: Int let title: String let latitude: Double let longitude: Double }
【参考サイト】
⭕️UnityのiOSネイティブをSwiftで書く:https://re-engines.com/2018/09/19/unity%E3%81%AEios%E3%83%8D%E3%82%A4%E3%83%86%E3%82%A3%E3%83%96%E3%82%92swift%E3%81%A7%E6%9B%B8%E3%81%8F/
↑上記の方の方法を参考にしており、エラー箇所の 'showMapWithFrame:placeJson:' はそのまま使用しています。
❌github unity-swift:https://github.com/miyabi/unity-swift
↑この方のSwiftをUnityで使用するためのAssetは(2019年の6月のXcodeアップデートによってBridge-Headerファイルが使用できなくなったとかで)使用が出来ず(module.modulemapを手動で入れればできると書いている記事もありましたが素人なので理解及ばす)
なので、2019年の6月以降に更新されているものを探したところ
⭕️github SwiftToUnityExample:https://github.com/jwtan/SwiftToUnityExample
↑上記を見つけ参考にしています(サンプルコードは問題なく動きました)
今回のエラーは引数などの記述ミスが多いらしいのでObjective-Cの引数の書き方を中心に調べたのですが、参考サイトの記述方法が正しく思えてどこが間違ってるのかわかりません。
何か気づくことがあれば教えてください。よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。