关于Unity与Xcode之间的交互问题

时间:2021-10-30 21:12:57

     当我们在整合项目的时候,可能需要的Unity与Xcode之间的互相调用,比如保存图片到IOS相册,Unity是无法直接存储图片到IOS相册,只能调用Xcode的方法才可以。下面简单得讲述一下他们之间是如何实现交互的。

想在Unity中调用Xcode里面的方法,首先需要一个连接两者之间的“接口”,其实就是预定义的一个方法,实现方法如下:

public class CallOS : MonoBehaviour {

[DllImport("__Internal")]
private static extern void _CallIOS();


void OnClick()
{
print("dian ji an  niu !!!!!");
_CallIOS();
//Application.LoadLevel("1");

}
}

接口就是上面所说的CallOS方法,在点击Unity中的按钮之后,执行这个方法。下面看看Xcode里面是怎么处理的。


在执行文件中(.m)

+(MyView *)shareInstance

{

    if(!instance)

    {

        instance = [[MyView alloc] init];

    }

    return instance;

}


void _CallIOS()
{
    // do something here ,show your ios ui....
    
    [[MyView shareInstance] showIOSView];
    
    printf("UI显现!!!!!!\n");
    
}
-(void)showIOSView
{
      self.view.userInteractionEnabled=YES;
//    self.tabBarController.tabBar.userInteractionEnabled=YES;
//    self.navigationController.navigationBar.userInteractionEnabled=YES;
    for (UIView *view in self.view.subviews) {
        [view setHidden:NO];
        
        printf("xian shi \n ");
    }

    //self.view.userInteractionEnabled=NO;
    printf("显示按钮!!!!!\n");
    
}


如上所示,执行CallOS方法,让实现写好的界面显现。这样就实现了在Unity中控制了Xcode界面的显示。

在Xcode中如果想控制Unity中的某些方法或者物体时,在执行文件中我们有这样的一个方法UnitySendMessage


在Xcode中界面UI相应事件中这样写道:


 UnitySendMessage("FirstCamera","LoadScene","");


向Unity中的FirstCamera发送消息,让他执行挂载在他上面的LoadScene方法。这样就实现了在Xcode中控制Unity中方法的执行。

原文及下载地址:

链接:http://pan.baidu.com/s/1jG3kzJ4 密码:x5sw

大体执行流程就是这样的,有什么错误或者建议的地方,欢迎大家指正,谢谢!!!