十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
项目需求,最近特地花时间了解了一下iOS展示3D模型的技术和框架。总结为以下几种:
成都创新互联长期为千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为高密企业提供专业的网站建设、网站设计,高密网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。
1、 Scene Kit:面向对象
2、 Metal:面向接口开发,非常底层。3D图形渲染和并行运算,与openGL
相比可减少资源开销
3、 OpenGL ES: OpenGL的子集
4、 OpenGL:跨平台,可同时兼容iOS和android,但是性能没有Metal好
5、 Unity3D:不容易嵌套在原生界面里,成本较高
6、 JSNode:用JS+html做展示的框架,再通过iOS与JS交互来调用显示
Metal和openGL是对GPU底层接口的访问。而metal更底层,它提供了面向硬件的接口。
Unity是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。unity是一个跨平台的游戏引擎,不管是ios还是android或者pc的exe亦或者网页版等等,都是用同样的语言,一般公司都用C#语言,常见的还有javascript。
Unity类似于Director,Blender game engine, Virtools 或 Torque Game Builder等利用交互的图型化开发环境为首要方式的软件其编辑器运行在Windows 和Mac OS X下,可发布游戏至Windows、Mac、Wii、iPhone、Windows phone 8和Android平台。也可以利用Unity web player插件发布网页游戏,支持Mac和Windows的网页浏览。它的网页播放器也被Mac widgets所支持。
1.1 为iOS而设计(Designing for iOS)iOS 表现了以下三大设计原则:遵从(Deference):UI应该有助于用户更好地理解内容并与之交互,并且不会分散用户对内容本身的注意力。清晰(Clarity):各种尺寸的文字清晰易读;图标应该精确醒目,去除多余的修饰,突出重点,以功能驱动设计。深度(Depth):视觉的层次感和生动的交互动画会赋予UI新的活力,有助于用户更好地理解并让用户在使用过程中感到愉悦。无论你是重新设计现有的应用,还是重新开发一个新应用,请基于下列方法进行设计考虑:首先,去除掉UI元素让应用的核心功能突显出来,并明确之间的相关性。然后,使用iOS的主题来定义UI并进行用户体验设计。完善细节设计,以及适当合理的修饰。最后,保证你设计的UI可以适配各种设备和各种操作模式,使得用户在不同场景下都可以享受你的应用。在整个设计过程中,时刻准备着推翻先例,质疑各种假设,并以内容和功能视为重点来驱动每个细节的设计。1.1.1 设计跟随内容 (Defer to Content)尽管清新美观的UI和流畅的动态效果都是iOS体验的亮点,但内容始终是iOS的核心。这里有一些方法可以确保你的设计既可以提升功能体验,又可以关注内容本身。充分利用整个屏幕。系统天气应用是这个方法的绝佳范例:用漂亮的全屏天气图片呈现现在的天气,直观地向用户传递了最重要的信息,同时也留出空间呈现了每个时段的天气数据。重新考虑(尽量减少)拟物化设计的使用。遮罩、渐变和阴影有时会让UI元素显得很厚重,导致影响到了对内容的关注。相反,应该以内容为核心,让用户界面成为内容的支撑。用半透明UI元素样式来暗示背后的内容。半透明的控件元素(比如控制中心)可以提供了上下文的使用场景,帮助用户看到更多可用的内容,并可以起到短暂的提示作用。在iOS中,半透明的控件元素只让它遮挡住的地方变得模糊——看上去像蒙着一层米纸——它并没有遮挡屏幕剩余的部分。1.1.2 保证清晰 (Provide Clarity)确保你的应用始终是以内容为核心的另一个方法是保证清晰度。这里有几种方法可以让最重要的内容和功能清晰可见,且易于交互。使用大量留白。留白可以使重要的内容和功能更加醒目、更易理解。留白还可以传达一种平静和安宁的心理感受,它可以使一个应用看起来更加聚焦和高效。让颜色简化UI。使用一个主题色——比如Notes中用了黄色——高亮了重要区块的信息并巧妙地用样式暗示可交互性。同时,也让应用有了一致的视觉主题。内置的应用使用了同系列的系统颜色,这样一来,无论在深色或浅色背景上看起来都很干净,纯粹。通过使用系统字体确保易读性。iOS的系统字体(San Francisco)使用动态类型(Dynamic Type)来自动调整字间距和行间距,使文本在任何尺寸大小下都清晰易读。无论你是使用系统字体还是自定义字体,一定要采用动态类型,这样一来当用户选择不同字体尺寸时,你的应用才可以及时做出响应。使用无边框的按钮。默认情况下,所有的栏(bar)上的按钮都是无边框的。在内容区域,通过文案、颜色以及操作指引标题来表明该无边框按钮的可交互性。当它被激活时,按钮可以显示较窄的边框或浅色背景作为操作响应。1.1.3 用深度层次来进行交流 (Use Depth to Communicate)iOS经常在不同的视图层级上展现内容,用以表达层次结构和位置,这样可以帮助用户了解屏幕上对象之间的关系。对于支持3D触控的设备,轻压(Peek)、重压(Pop),以及快捷操作(Quick Actions)能让用户在不离开当前界面的情景下预览其他重要内容。通过使用一个在主屏幕上方的半透明背景浮层,这样文件夹就能清楚地把内容和屏幕上其他内容区分开来。如图所示,备忘录(Reminders)以不同的层级展示内容条目。用户在使用备忘录里的某个条目时,其他条目会被集中收起在屏幕下方。日历具有较深的层级,当用户在翻阅年、月、日时,增强的转场动画效果给用户一种层级纵深感。在滚动年份视图时,用户可以即时看到今天的日期以及其他日历任务。当用户选择了某个月份,年份视图会局部放大该月份,过渡到月份视图。今天的日期依然处于高亮状态,年份会显示在返回按钮处,这样用户可以清楚地知道他们在哪儿,他们从哪里进来以及如何返回。类似的过渡动画也出现在用户选择某个日期时:月份视图从所选位置分开,将所在的周日期推向内容区顶端并显示以小时为单位的当天时间轴视图。这些交互动画增强了年、月、日之间的层级关系以及用户的感知。1.2 iOS应用解析 (iOS App Anatomy)几乎所有的iOS应用都应用了UIKit framework中定义的组件。了解这些基本组件的名称、作用和功能可以帮助你在应用的界面设计过程中做出更好的决策。UIKit提供的UI组件可以大致分为以下4种类型:栏(Bars):包含了上下文信息来指引用户他们所在的位置,以及控件来帮助用户导航或执行操作。内容视图(Content Views):包含了应用的具体内容以及某些操作行为,比如滚动、插入、删除、排序等等。控件(Controls):用于执行操作或展示信息。临时视图(Temporary Views):短暂出现给予用户重要信息或提供更多的选择和功能。UIKit除了定义UI组件元素,还定义对象如何实现功能,例如手势识别、绘图、辅助功能和打印支持。从编程的角度来看,UI组件元素其实是视图的子类,因为它们继承了UIView。视图能绘制屏幕内容并知道用户何时在其范围内触屏。视图的所有类型有:控件(比如按钮和滑块)、内容视图(比如集合视图和表格视图),以及临时视图(如警告提示和动作菜单)。要在应用中管理一组或者一系列的视图,通常需要使用视图控制器。它能协调视图的内容显示,实现与用户交互的功能并能在不同屏幕内容之间切换。比如,“设置”使用了一个导航控制器来展示其视图层级。这里有一个关于视图与视图控制器如何结合并呈现iOS应用的UI的例子,如图。尽管开发者认为真正起到作用的是视图和视图控制器,但一般用户感知到的iOS应用是不同屏幕内容的集合。从这个角度来看,在应用里,屏幕内容一般对应于一个独特的视觉状态或者模式。注:一个iOS应用程序包含一个窗口。但是,不同于计算机程序中的窗口,iOS窗口没有可见的部分并且不能在屏幕上被移动到另一个位置。很多iOS应用程序只有一个窗口;可以支持外部显示设备器的应用程序可以有不止一个窗口。在iOS Human Interface Guidelines中,屏幕(screen)这个词和大部分用户理解的一样。作为一个开发者,你也许需要阅读一下其他与UIscreen相关的章节,这样你可以更好的了解如何关联外部屏幕。
javascript c# boo, 还是推荐js, 虽然本人再用c#.有的地方js更方便简单
抗锯齿算法有很多种哦,前期后期处理都可以哦,还要考虑到手机的分辨率问题哦
1.获得Unity和iOS导出器
如果您还未获得Unity3D工具,不要说IOS了,恐怕任何Unity3D游戏根本无法进行开发,这时,您首先应该到官网去下载最新版本的Unity。该程序目前有两个版本,分别是免费版(
2.注册苹果开发者
接下来,您需要做的下一件事便是加入苹果开发者,这是继续您IOS开发的必要过程(不注册,不能上传软件,开发了也没意义)。附带一提,加入苹果开发者,需要每年支付99美元。如果您可以承受此代价,那么,您可以通过以下地址进行注册:
3.下载并安装XCode
好
了,如果您已经加入苹果开发者,那么,下一件事便是下载并安装XCode了。这在一开始可能会让人困惑,有些初次接触Unity的朋友,可能会认为
XCode是为iOS创造原生应用的,关Unity什么事?其实,Unity在IOS开发时,也要使用XCode作为中介将C#或JS代码,编译为IOS
的本地应用,再发布到iOS设备中,所以,您真正使用的核心,依旧是苹果XCode,只是Unity3D封装了具体的操作与转化过程,您所有的开发将是发
生在Unity上,而非XCode上执行(底层借助Mono实现,而Mono借助LLVM翻译Unity脚本为本地语言)。在这里,XCode的作用只是
将内容从Unity导入到具体设备中。
您可以从苹果商店中下载XCode:
4.创造一个开发者配置文件
到目前为止,您应该已经下载了Unity(无论正版或破解)以及XCode,并激活了您的苹果开发者身份。
但
是现在,为了能将您的游戏直接从Unity导入到IOS设备上,您还需要一个开发者配置文件(需要依赖此配置文件,才能让你移植你所开发的游戏或任何测试
用例到您的IOS设备上)。具体来说,苹果提供了两种类型的文件配置方式,即用于开发和测试的开发者配置文件以及用于提交到苹果商店的分布配置文件。为了
创造开发者配置文件,您需要做3件事:
1、注册你的设备
2、建立一个应用ID
3、获得签名证书。
您可以通过你的苹果开发者邮件中的引导,来完成这三件事。具体操作可通过地址:
现在选择Certificates,Identifiers和Profiles,您便能够从中访问并管理你的配置文件,苹果ID等等。
1)注册你的设备
在
Certificates,Identifiers和Profiles部分中选择设备。因为这对于苹果去识别用于测试的特定设备是必要的。这并不会改变你
的设备的任何设置,你能够轻松地使用自己每天所使用的设备。在注册你的设备时,你可以点击+按键去添加一个新设备。然后你需要填写设备的名字(可以是任何
名字)以及UDID(即设备独一无二的ID)。你将会发现自己可以注册一个以上的设备进行测试,如果你想要基于不同设备进行测试的话这边很有帮助(如一台
iPhone和一台iPad)。
为了找到你的设备的UDID,你需要将你的设备与电脑连接在一起,然后打开iTunes并点击iPhone按键(界面的右上方的),你将看到设备的信息包含了名字。然后你可以将鼠标停在上方并点击SerialNumber,这将变成一个常标识,这便是UDID。
这是你需要的数字,你必须将其复制黏贴到MemberCenterPortal的ID部分。现在你便可以注册你的设备了。记住一旦你注册了设备,你便只能改变它的名字而不能改变UDID。
2)设置一个应用ID
下一步便是设置你的应用ID。仍然在MemberCenterPortal的Certificates,Identifiers和Profiles,选择应用ID并点击+按键。
首先提供任何你想要的描述,只要它能够帮助你记得你的ID是用于做什么便可。一个好的方法便是为一款应用使用一个独特的名字并为一款测试应用使用一个普通的名字。接下来你需要设置BundleIdentifier,这是以相反的域符号形式呈现出来“
即:com+你的全名(如果你是一名个体开发者的话)+你的游戏名称:
com.YourName.TheGameName
这类型的BundleID将很清楚并只能用于唯一的一款游戏中。因此你需要为你的每一款游戏使用不同的名字。然而这是很有用的,这让你能够访问像“游戏中心”和“应用内部购买”等服务。
另一方面,Wildcard的BundleID是以如下形式呈现出来:
com.YourName.*
这里用星号替代了游戏名字。这种格式让你能够在多款应用中使用同样的ID,而无需每次都设置一个不同的名字,但是这却不允许你使用特定的设备。
现在你已经选择了继续并确认了应用ID。将捆绑ID记录下来,因为之后你将需要在Unity的构建设置中使用到它。
3)获得开发者证书
现
在,你需要做的第一件事,便是通过你的计算机获得CertificateSigningRequest。前往
ApplicationsUtilitiesKeychaneAccess,然后是
PreferencesCertificates。确保OnlineCertificateStatusProtocol和
CertificateRevocationList都是处于OFF,并关闭Preference。现在在KeychaneAccess中前往
CertificateAssistant并从CertificateAuthority中选择RequestCertificate。提供与你在注册开
发者计划时使用的同样细节并点击继续。提供一个名字并保存到Desktop。在保存时选择2048位体和RSA。
现在在你的Desktop中应该拥有一个带着.certSigningRequest前缀的文件。
现在回到MemberCenterPortal的Certificates,Identifiers和Profiles部分,选择CertificatesDevelopment(就像你要获得开发证书那样),然后按压+按键进行创造。
选择上传你保存在Desktop中的CertificateSigningRequest。在你提交前,确保向下滚动页面并在IntermediateCertificates中找到WWDRCertificate。在你之后需要的时候可以下载它。
现在进行提交,你的CertificateSigningRequest将被发送到苹果并被另外一个你能够下载的内容所取代。它将被命名为:ios_development.cer
所以现在你的Desktop上应该拥有两个证书。即ios_development.cer和WWDRCertificate,你需要双击这两个证书将其安装于KeychaneAccess。现在你便设置好你的开发者证书了。
4)创造配置文件
在
完成上述三个步骤后,现在的你可以继续去创造配置文件了。仍然在MemberCenterPortal的
Certificates,Identifiers和Profiles中,前往ProvisioningProfilesAll并按压+按键去创
造一个全新的配置文件。
在
Development和DistributionProfile中做出选择(这里我们需要的是Development!),然后在下一个屏幕上选择与该
配置文件相联系的应用ID,设备和证书(注:这是你在之前步骤已经设置好了的)。最后为配置文件命名并回顾之前的选择。当准备好时点击Generate。
现在你便可以看到你的全新配置文件,你需要将其下载到你的Desktop上然后安装它。配置文件将是一个带有.mobileprovision前缀的文
件。
现
在转向XCode,前往WindowOrganizerDevicesProvisioningProfile,然后双击已经下
载到你的Desktop上的配置文件。你便完成了安装并能够给予Organizer视图看到它。最后一步非常重要,因为只有将配置文件安装到Xcode,
它才能够正常运行。
一些额外的内容:仍然在XCode,如果你的设备在Devices视图中仍看不到,那就前往WindowOrganizerDevices,按照名字选择设备。你可能需要在这个过程中选择UseforDevelopment,然后提供你的开发者记录细节。
虽然这是一个较为漫长的过程,但好消息是你已经完成工作了!
现在,您可以开始致力于你的Unity游戏并准备好导出它。
但请记住,您只能注册设备和创造开发者证书一次,每当你创造一款新游戏时你都需要创造一个全新的应用ID和全新的配置文件。
5.使用Unity发布IOS游戏
当
您准备好导出你的游戏时,启动Unity3D,选择FileBuildSettings,确保您选择了iOS作为平台,并记得包含当前场景到导出
游戏中(使用AddCurrent按键)。然后点击PlayerSeetings按键并前往OtherSettings。
将
BundleIdentifier按照你之前设置好的进行设置(com.YourName.TheGameName),你可能需要将TargetIOS版
本设为6(或者未来的最新版本)。除此之外,将所有内容都保持为默认即可,除非您有必须改变它们的理由(特殊设定之类)。
然后回到BuildSettingsWindow并点击Build,将项目保持到其自身的文件夹中。
此刻,连接你的设备和计算机,打开文件夹并开始XCode项目。你将看到它在XCode中打开。从XCode界面的左上角选择你的设备,然后点击Run按键。