Unity入门

环境搭建(TODO)

unity hub下载安装

https://public-cdn.cloud.unity3d.com/hub/prod/UnityHubSetup.dmg

unity安装

启动Unity hub, 然后选择安装

image

选择一个版本

image

打开Unity项目

在unity hub里添加项目并打开

image

运行unity项目

image

vscode调试环境

  • 安装插件

  • 安装Debugger for Unity插件

  • C#插件

  • vscode打开ubase目录

  • 调试

  • 点击调试按钮,选择unity debugger, 然后在相应的代码添加断点即可调试

image
  • 错误
  1. vscode加载项目错误

The reference assemblies for framework ".NETFramework,Version=v4.7.1" were not found

下载mono: https://www.mono-project.com/download/stable/

代码结构

插件

Assets/Plugins下是unity的插件目录,主要负责桥接包装android, iOS端的代码(Native代码)

  • iOS目录负责将iOS的mm文件代码逻辑包装在类c接口里,供外部c#使用
  • unity和iOS的桥接文档见 ​Unity和iOS之间的桥接​
  • Android目录相对简单些。由于c#可以通过AndroidJavaProxy,AndroidJavaObject等方式直接使用java逻辑,因而该Plugin主要用于包含相应的java模块及Unity专用的java代码
  • Bridge是unity和Native的桥接模块,它负责将android, iOS插件里的代码逻辑包装在c#代码里,供其他c#代码调用。由于c#使用java代码和c代码的方式不一样,因而该插件下又分了android, iOS目录
image

c#库

非Plugins目录,比如AdManagers, unity的通用逻辑,可以看成是Unity的库

Unity导出的项目结构分析

iOS端

image

很多代码打包为静态库保存在./Libraries/libiPhone-lib.a, 比如UnityInitApplicationGraphics

image

Android端

更简单些,将导出的Android从Application改为libarary即可被使用,c#的代码已经被编译在assets/bin下面了

导出测试(TODO)

需要将该项目的demo程序导出为android, iOS项目才能真正测试效果

底层机制(TODO)

通信机制摘要

  • iOS

  • oc调用c#:

  • Unity框架库里的UnitySendMessage函数

  • c#调用oc

  • c#->c++->oc

  • Android

  • c#调用java

  • 通过AndroidJavaObject访问Java

  • java调用c#

UnityPlayer.UnitySendMessage函数

你可能感兴趣的:(Unity入门)