查看: 2413|回复: 57

[手机] iPhone上如何侦测到系统的语言设定

[复制链接]

3

主题

26

听众

204

积分

Rank: 2

升级   1.33%

发表于 2013-4-24 10:14 |显示全部楼层
共享资源获取更多积分!share your resources get more credits!
资源信息 Tutorial Information
教程名称: iPhone上如何侦测到系统的语言设定(发布原创教程可获得更多积分哦!)
适用引擎: (资源适用引擎)
教程语种: 中文
教程等级: 小白(等级越高教程越难,但能学到的东西越多)
教程格式: 文档(请用IE9以上浏览器访问本版块)
教程作者: 转载自互联网 (如有问题请短消息联系作者或发表回复)
点击查看原图 --> 美丽分割线
请先回复
哇伊~ (((‵□′))回复太烦了,怒买VIP(充值金额将用于论坛采购更多资源)

--> 请先登录 --> 请先登录 --> 请先登录 --> 请先登录 --> 请先登录 --> 请先登录 -->
Unity3D游戏引擎最大的优势就是跨平台,但除了跨平台之外,游戏能够同时支援多种语言就更完美了,在这方面,Unity也帮我们考虑到了,所以要判断使用者系统使用的语言是相当容易的,可惜的事,在iPhone的系统上却不是这么回事;所以在游戏中只能多个语言设定的功能让玩家自己设定要使用哪种语言,这样也是支援多语言环境,那么在iPhone上应该如何办到呢?

一般而言,要知道使用者的系统设定语言,只需要使用Application.systemLanguage就能得知,例如Application.systemLanguage==SystemLanguage.Chinese就帮玩家切换到中文版;如果Application.systemLanguage==SystemLanguage.English就切换到英文版,然而这种方法虽然使用在windows和mac上都没问题,但在iPhone上,Application.systemLanguage竟然是SystemLanguage.Unknown,不管把iPhone切换到任何语言或是地区都是同样的结果。
经过在网路上搜索,发现许多人也遇到相同的问题,解决的方式很多种,有些方式还蛮复杂的,有些方式只是治标,并不能很准确得知玩家使用的语言,经过测试,以下提供一个我个人觉得最简单直接又最根本解决的办法,就是透过ObjectiveC取得系统语言再储存下来给Unity读取出来判断,对于未研究过ObjectiveC的人,这方法好像有点难度,以下提供实作流程,照着做就能解决问题罗~unity3d教程手册

1.当Unity编译输出为iPhone应用程式完成之后,会开启Xcode,在此找出AppController.mm。
2.在-(id)initWithFrame:(CGRect)frame{...}的大括号中插入这句[[NSUserDefaultsstandardUserDefaults]setObject:[[NSLocalepreferredLanguages]objectAtIndex:0]forKey:@“YourLanguageKey”];
3.把以上这句代码的YourLanguageKey改为自己喜欢的字串,不改也成。
4.然后在Unity任意的Script中,只要呼叫PlayerPrefs.GetString(“YourLanguageKey”)就能取得代表语系的字串;en代表英文、zh-Hant代表中文繁体、zh-Hans代表中文简体。
步骤2的代码会在Awake()之前执行,所以我把PlayerPrefs.GetString(“YourLanguageKey”)放在Awake()中判断语系,并切换适当的语言环境给玩家;另外,也可在做这个判断之前使用if(Application.platform==RuntimePlatform.IPhonePlayer){...}来分辨目前的执行平台,毕竟只有在iPhone才需要这样特别处理。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

楼主热帖

0

主题

27

听众

217

积分

Rank: 2

升级   5.67%

发表于 2013-5-4 23:43 |显示全部楼层
早些时候需要这么获取系统语言,但是现在已经不需要了,直接就可以获取到系统语言了。
回复

使用道具 举报

0

主题

10

听众

201

积分

Rank: 2

升级   0.33%

发表于 2017-2-10 18:41 |显示全部楼层
很不错
回复

使用道具 举报

0

主题

10

听众

204

积分

Rank: 2

升级   1.33%

发表于 2017-2-10 18:50 |显示全部楼层
楼主是超人
回复

使用道具 举报

0

主题

10

听众

201

积分

Rank: 2

升级   0.33%

发表于 2017-2-10 19:02 |显示全部楼层
顶顶多好
回复

使用道具 举报

0

主题

10

听众

201

积分

Rank: 2

升级   0.33%

发表于 2017-2-10 18:15 |显示全部楼层
很好哦
回复

使用道具 举报

0

主题

10

听众

202

积分

Rank: 2

升级   0.67%

发表于 2017-2-10 18:25 |显示全部楼层
不错不错
回复

使用道具 举报

1

主题

26

听众

207

积分

Rank: 2

升级   2.33%

发表于 2017-4-23 19:28 |显示全部楼层
很不错
回复

使用道具 举报

0

主题

26

听众

201

积分

Rank: 2

升级   0.33%

发表于 2017-4-23 20:14 |显示全部楼层
楼主是超人
回复

使用道具 举报

0

主题

26

听众

200

积分

Rank: 2

升级   0%

发表于 2017-4-23 20:02 |显示全部楼层
好帖就是要顶
回复

使用道具 举报

温馨提示:求助请到“Unity技术讨论”版块中发帖,便于集中解决!
您需要登录后才可以回帖 登录 | 立即注册

懒人模式:

关闭

站长推荐 上一条 /1 下一条

Unity3D游戏开发联盟(资源共享平台) -Unity3D,Unreal ( 粤ICP备20003399号-2 )   

GMT+8, 2020-4-10 20:35 , Processed in 0.104329 second(s), 81 queries .