http://www.wongpeace.com 记录 & 总结 & 创作 & 更迭 Thu, 29 Jun 2023 03:20:48 +0000 zh-CN hourly 1 https://wordpress.org/?v=5.8.2 http://www.wongpeace.com/wp-content/uploads/2023/06/cropped-闲者拾光正方形青-_512-32x32.png http://www.wongpeace.com 32 32 《四季之春》已正式发售 http://www.wongpeace.com/2023/06/21/868/ http://www.wongpeace.com/2023/06/21/868/#respond Wed, 21 Jun 2023 09:46:33 +0000 http://www.wongpeace.com/?p=868 Continue reading 《四季之春》已正式发售]]> 青山谷雨前,并手摘芳烟。经过超级漫长的等待,我们很高兴的在谷雨前夕和大家宣布,《四季之春》于2023年4月19号正式发售!

目前大家可以在以下平台购入游戏:

  1. TapTap,原价18元,首发折扣价12元;
  2. App Store,原价18元,首发折扣价12元;
  3. Steam蒸汽平台WeGame,首发折扣价25.2元。所有平台首发折扣活动从今天起持续一周,欢迎大家按需购买。

现在为大家带来一段上线宣传片,请您欣赏:

呼,三年多的兼职开发确实非常漫长,谢谢一路走来持续关注我们的各位玩家朋友,感激之情难以言表。

官方QQ群812276689。】——欢迎加入哦!大家关心的各种问题,请参考这个FAQ帖。最后,请大伙儿持续关注论坛,我们还会有更多福利活动!

不风不雨正晴和,翠竹亭亭好节柯。现在仍是春日,祝大家玩的开心!

癸卯年谷雨前夕 -《四季之春》项目组。

]]>
http://www.wongpeace.com/2023/06/21/868/feed/ 0
四季之春-游戏产品隐私政策 http://www.wongpeace.com/2023/06/02/840/ http://www.wongpeace.com/2023/06/02/840/#respond Fri, 02 Jun 2023 09:25:08 +0000 http://www.wongpeace.com/?p=840 Continue reading 四季之春-游戏产品隐私政策]]> 温馨提示

欢迎您使用《闲者拾光》游戏产品《四季之春》!我们非常重视保护您的个人信息和隐私。您可以通过《 闲者拾光 游戏产品隐私政策》了解我们收集、使用、存储用户个人信息的情况,以及您所享有的相关权利。请您仔细阅读并充分理解相关内容:

  1. 为向您提供游戏服务,我们将依据《闲者拾光-游戏产品隐私政策》收集、使用、存储必要的信息。
  2. 您可以访问、更正、删除您的个人信息,还可以撤回授权同意、注销账号、投诉举报以及调整其他隐私设置。
  3. 我们已采取符合业界标准的安全防护措施保护您的个人信息。
  4. 如您是未成年人,请您和您的监护人仔细阅读本隐私政策,并在征得您的监护人授权同意的前提下使用我们的服务或向我们提供个人信息。

请您阅读完整版《用户协议》及《闲者拾光-游戏产品隐私政策》了解详细信息。

如您同意《用户协议》及《闲者拾光-游戏产品隐私政策》,请您点击“同意”开始使用我们的产品和服务,我们将尽全力保护您的个人信息安全。

更新日期:2023年6月2日

生效日期:2023年4月19日

隐私政策

闲者拾光(注册地址:重庆市潼南区桂林街道办事处五湖路636号潼南人工智能创新中心5楼501室20工位,以下简称“我们”)系移动应用程序“《四季之春》的运营者。我们非常重视保护用户(以下简称“”)的个人信息和隐私。您在使用闲者拾光游戏产品时,我们会收集、使用、保存、共享您的相关个人信息。为呈现我们处理您个人信息的情况,我们特制定《闲者拾光-游戏产品隐私政策》(以下简称“隐私政策”),我们承诺严格按照本隐私政策处理您的个人信息。

我们在此提醒您:

在您使用闲者拾光游戏产品前,请您务必认真阅读本隐私政策,充分理解各条款内容,包括但不限于免除或限制我们责任的条款。您知晓并确认,您勾选“同意”本隐私政策并使用闲者拾光游戏产品,就表示您同意我们按照本隐私政策处理您的个人信息。请您知悉,本政策仅适用于我们通过闲者拾光游戏产品向您提供服务所收集的信息,不适用于通过接入闲者拾光游戏产品以向您提供产品或服务的第三方所收集的信息。

本隐私政策将帮助您了解以下内容:

一、我们如何收集和使用您的个人信息

二、我们如何保存您的个人信息

三、我们如何使用Cookies

四、我们如何共享、转让、公开披露您的个人信息

五、第三方产品或服务如何获得您的个人信息

六、我们如何保护您的个人信息

七、您如何管理您的个人信息

八、我们如何处理未成年人的个人信息

九、本隐私政策如何更新

十、如何联系我们

一、 我们如何收集和使用您的个人信息

(一)我们如何收集您的个人信息

在您使用游戏产品过程中,我们会按照如下方式收集您的个人信息:

  1. 完成注册

当您注册闲者拾光游戏产品账户时,我们需要收集您的手机号码、登录密码。我们收集您的上述信息是为了帮助您完成闲者拾光游戏产品账户的注册,保护您的账户安全,如您不提供这类信息,我们将无法为您创建账户并正常向您提供服务。

2. 游戏服务

当您使用游戏服务时,我们需要收集您使用的设备ID、设备名称、设备类型和版本。我们收集您的上述信息是为了保障您正常使用我们的服务,维护游戏基础功能的正常运行,优化游戏产品性能,提升您的游戏体验。如您不提供这类信息,您将无法使用游戏服务。

3. 实名认证

当您进行实名认证时,我们需要收集您的姓名、身份证件类型、身份证件号码。同时,为实现实名认证的目的,您同意并授权我们自行或委托第三方向有关实名认证机构(如个人征信机构、政府部门等)提供、查询、核对您的前述身份信息。我们收集您的上述信息是为了履行法定义务,核验用户真实身份、识别用户年龄以及保障系统和服务安全。如您不提供这类信息,您将无法登录闲者拾光游戏产品或在使用闲者拾光游戏产品过程中受到相应限制。

4. 保障网络和服务的安全

为了保障网络和游戏服务的安全性,我们会收集您的设备识别符、IP地址、访问日期和时间。我们收集您的上述信息以营造公平、健康及安全的游戏环境,以打击破坏游戏公平环境或干扰、破坏游戏服务正常进行的行为(如用于检测盗版、扫描外挂、防止作弊等)。如您不提供上述信息,您将无法使用游戏服务。

5. 充值消费

游戏产品中不含有游戏内购。

(二)设备权限调用情况

在您使用闲者拾光游戏产品过程中,我们需要在必要范围内向您申请获取设备权限。请您知悉,我们不会默认开启您设备的权限,仅在您主动确认开启的情况下,闲者拾光游戏产品才有可能通过设备权限收集您的信息。闲者拾光游戏产品调用的权限、调用权限的目的,以及调用权限前向您询问的情况请见下表:

设备权限调用权限的目的是否询问用户可否关闭权限
网络连接网络
传感器调用设备的重力、加速度等传感器,以识别你的设备旋转状态
调用震动以提升游戏体验

如您在首次授权开启权限后希望关闭权限,您可以在设备的设置功能中选择关闭权限,从而拒绝我们收集相应的个人信息。

(三)我们如何使用您的个人信息

  1. 我们会根据本政策的约定并为实现我们的服务的目的对所收集的个人信息进行使用。
  2. 请您注意,您在使用我们提供的服务时所提供的所有个人信息,除非您删除或通过系统设置拒绝我们收集,否则将在您使用我们的服务期间持续授权我们使用。在您注销账号时,我们将停止使用并删除您的个人信息。
  3. 我们会对我们提供的服务使用情况进行统计,并可能会与公众或第三方共享这些统计信息,以用于产品开发、服务优化、安全保障的目的。但这些统计信息不包含您的任何身份识别信息。
  4. 当我们要将您的个人信息用于本政策未载明的其它用途时,或基于特定目的收集而来的信息用于其他目的时,会通过您主动做出勾选的形式事先征求您的同意。

(四)其他规则

根据相关法律法规及国家标准,以下情形中,我们可能会收集、使用您的相关个人信息而无需征求您的授权同意:

  1. 与我们履行法律法规规定的义务相关的;
  2. 与国家安全、国防安全直接相关的;
  3. 与公共安全、公共卫生、重大公共利益直接相关的;
  4. 与刑事侦查、起诉、审批和判决执行等直接相关的;
  5. 出于维护个人信息主体或其他个人的生命、财产等重大合法权益但又很难得到本人授权同意的;
  6. 所涉及的个人信息是个人信息主体或监护人自行向社会公众公开的;
  7. 根据个人信息主体要求签订和履行合同所必需的;
  8. 从合法公开披露的信息中收集个人信息的,如合法的新闻报道、政府信息公开等渠道;
  9. 维护所提供产品或服务的安全稳定运行所必需的,如发现、处置产品或服务的故障。

二、 我们如何保存您的个人信息

  1. 我们将在本政策载明的目的所需及法律法规要求的最短保存期限之内,保存您的个人信息。前述期限届满后,我们将对您的个人信息做删除或匿名化处理。

2. 我们在中国境内运营过程中收集和产生的个人信息将保存在中国境内(为本隐私政策之目的,“中国境内”不含中国港澳台地区),以下情形除外:

(1) 法律有明确规定;

(2) 获得您的明确授权;

(3) 您要求获取境外服务等个人主动行为。

针对以上情形,我们会确保依据本隐私政策以及相关法律规定对您的个人信息提供足够的保护。我们如何使用Cookies和同类技术

三、 我们如何使用Cookies和同类技术

  1. 我们如何使用Cookies

(1)通过使用Cookies,我们向用户提供安全且具个性化的服务体验。我们和第三方合作伙伴会在您的计算机或移动设备上存储Cookies、Flash Cookies,或浏览器(或关联应用程序)提供的其他通常包含标识符、站点名称以及一些号码和字符的本地存储(以上合称“Cookies”)。我们和我们的第三方合作伙伴可能通过Cookies收集您的信息,并将信息用于以下用途:

(2) 第三方合作伙伴通过Cookies收集和使用您的信息不受本政策约束,而是受到其自身的信息保护声明约束,我们不对第三方的Cookies或同类技术承担责任。

(3)如果您的浏览器或浏览器附加服务允许,您可修改对Cookies的接受程度或拒绝我们的Cookies。有关详情,请参见https://www.aboutcookies.org/。但如果您这么做,在某些情况下可能会影响您安全使用我们的产品或服务。同时,您仍然将收到商品或服务信息,只是这些商品或服务信息与您的相关性会降低。

2. 我们如何使用同类技术

我们将以服务用户为宗旨,并且在遵守相关法律法规的情形下使用同类技术。

四、 我们如何共享、转让、公开披露您的个人信息

  1. 委托处理

我们会委托第三方服务提供商处理我们所收集的您的个人信息,以便其为我们提供基础设施技术、数据分析、广告投放、营销决策等产品或技术支持。上述委托处理行为受本政策中所声明目的约束,并且我们会以合同的方式对上述受托的第三方服务提供商进行监督。

2. 共享

(1)事先获得您明确的同意或授权,或您要求我们通过电子邮件或其他方式与第三方共享您的个人信息;

(2)根据适用的法律法规规定,或按照政府主管部门的强制性要求进行提供;

(3)与我们的关联公司共享:我们可能会与我们的关联公司共享您的个人信息;但是我们只会共享必要的个人信息,且受本政策中所声明目的的约束;关联公司也将依据本政策采取同等的安全保障措施来保障您的个人信息安全;

(4)与我们的业务合作伙伴共享。我们可能会将您的个人信息共享第3方广告商。我们共享这些信息的目的是为实现服务所必需,比如我们需要将您的 地理位置信息 共享给 第3方广告商 以向您提供更为精准的广告服务。

3. 转让

我们不会将您的个人信息转让给任何公司、组织和个人,但在涉及合并、收购、资产转让或破产清算时,如涉及到个人信息转让,我们会向您告知有关情况,并要求新的持有您个人信息的公司、组织继续受本政策的约束,否则我们将要求该公司、组织重新取得您的授权同意。

4. 公开披露

除非本合同另有约定或法律明确规定,我们不会公开披露您的个人信息。

5. 例外情况

另外,根据相关法律及国家标准,以下情形中,我们可能会共享、转让、公开披露个人信息无需事先征得您的授权同意:

(1)与我们履行法律法规规定的义务相关的;

(2)与国家安全、国防安全直接相关的;

(3)与公共安全、公共卫生、重大公共利益直接相关的;

(4)与刑事侦查、起诉、审判和判决执行等直接相关的;

(5)出于维护个人信息主体或其他个人的生命、财产等重大合法权益但又很难得到本人授权同意的;

(6)个人信息主体或监护人自行向社会公众公开的个人信息;

(7)从合法公开披露的信息中收集个人信息的,如合法的新闻报道、政府信息公开等渠道。

6. 请注意,您在使用我们服务时自愿共享甚至公开分享的信息,可能会涉及您或他人的个人信息甚至个人敏感信息。请您谨慎共享或公开,如所涉信息包含他人个人信息,请您在共享或公开前取得他人同意。

7. 请知悉,根据法律规定,若我们采取技术措施和其他必要措施处理个人信息,使得数据接收方无法重新识别特定个人且不能复原,经上述处理后的数据的共享、转让、公开披露无需另行向您通知并征得您的同意。

五、 第三方产品或服务如何获得您的个人信息

为了向您提供更丰富和完整的功能,我们会使用下述第三方软件开发工具包(简称“SDK”)为您提供服务。SDK的具体信息收集和使用情况请以SDK运营方的隐私政策或相关声明为准。点击《第三方SDK类服务商目录》可查看我们接入的授权合作伙伴的SDK详情。

SDK名称SDK使用目的SDK收集的信息隐私政策链接
Unity3D框架可能收集的个人信息的类型:读取设备信息(设备型号、系统名称、系统版本、MAC地址、IMEI、Android_id)、访问相机、应用安装列表、任务列表、网络状态信息、设备传感器、传感器列表)https://unity3d.com/cn/legal/privacy-policy
TapTap SDK登录、实名认证、数据保存设备版本、手机样式、读写存储权限、android ID、WiFi 信息、设备版本、系统版本、IMSI、网络设备制造商、任务列表https://developer.taptap.cn/docs/sdk/start/agreement/

六、 我们如何保护您的个人信息

我们非常重视个人信息安全,并采取一切合理可行的措施,保护您的个人信息:

  1. 我们采取了行业通行的数据保护技术与管理措施,例如网络隔离、数据加密、员工访问控制等措施,以防止其遭到未经授权的访问、披露、篡改、丢失或毁坏。
  2. 请您知悉,虽然我们将尽力确保或担保您发送给我们的任何信息的安全性,但互联网环境并非百分之百安全,我们亦不对由此产生或与之相关的任何风险、损失承担责任。
  3. 在不幸发生个人信息安全事件后,我们将按照法律法规的要求,及时向您告知:安全事件的基本情况和可能的影响、我们已采取或将要采取的处置措施、您可自主防范和降低风险的建议、对您的补救措施等。我们将及时将事件相关情况以应用程序推送、电子邮件、短信、电话等方式告知您,难以逐一告知个人信息主体时,我们会采取合理、有效的方式发布公告。同时,我们还将按照监管部门要求,主动上报个人信息安全事件的处置情况。

七、 您如何管理您的个人信息

在您使用闲者拾光游戏产品期间,您可以通过相应页面提示或本隐私政策载明的方式联系我们,以访问、更正、删除您的个人信息,以及行使改变授权同意的范围与注销账号的权利,您的意见会及时得到处理。

  1. 访问及更正您的个人信息

如您希望访问或更正您的个人信息,您可以通过本隐私政策载明的方式与我们联系,我们将及时响应您的请求。

2. 删除您的个人信息

在以下情形中,您可以通过本隐私政策载明的方式向我们提出删除个人信息的请求:

  • 我们违反法律、行政法规或与您的约定收集、使用个人信息;
  • 我们违反法律、行政法规或与您的约定与第三方共享或转让您的个人信息,我们将立即停止共享、转让行为,并通知第三方及时删除;
  • 我们违反法律、行政法规规定或与您的约定,公开披露您的个人信息,我们将立即停止公开披露的行为,并发布通知要求相关接收方删除相应的信息;
  • 您不再使用我们的产品或服务,或您注销了账号,或我们终止服务及运营。

3. 改变您授权同意的范围

您可以通过设备权限设置或本隐私政策载明的方式与我们联系,以改变同意范围或撤回您的授权。

请您理解,闲者拾光游戏产品可能需要开启部分权限并收集必要的个人信息才能得以实现。当您撤回您的同意时,我们将无法继续为您提供撤回同意所对应的服务,但不会影响此前基于您的授权而开展的个人信息处理服务。

4. 注销账户

如果您希望注销您的账户,您可以根据本隐私政策载明的方式与我们联系,我们将及时响应您的请求。

您注销上述账户的行为是不可逆的,我们将停止为您提供产品或服务,不再收集您的个人信息,并依据您的要求删除与您账户相关的个人信息或做匿名化处理。

5. 响应您的上述请求

如您无法按照上述方式行使权利的,您可以采取本隐私政策载明的联系方式与我们联系。为保障安全,您可能需要提供书面请求,或以其他方式证明您的身份。我们可能会先要求您验证自己的身份,然后再处理您的请求。

对于您合理的请求,我们原则上不收取费用,但对多次重复、超出合理限度的请求,我们将视情收取一定成本费用。对于那些无端重复、需要过多技术手段、给他人合法权益带来风险或者非常不切实际的请求,我们可能会予以拒绝。

6. 响应情形的例外

在以下情形中,我们将无法响应您的请求:

  • 与我们履行法律法规规定的义务相关的;
  • 与国家安全、国防安全直接相关的;
  • 与公共安全、公共卫生、重大公共利益直接相关的;
  • 与刑事侦查、起诉、审判和执行判决等直接相关的;
  • 我们有充分证据表明个人信息主体存在主观恶意或滥用权利的;
  • 出于维护个人信息主体或其他个人的生命、财产等重大合法权益但又很难得到本人同意的;
  • 响应个人信息主体的请求将导致个人信息主体或其他个人、组织的合法权益受到严重损害的;
  • 涉及商业秘密的。

八、 我们如何处理未成年人的个人信息

我们非常重视对未成年人个人信息的保护。根据相关法律法规的规定,收集、使用未满14周岁的未成年人的个人信息,需由监护人授权同意;收集、使用已满14周岁未满18周岁的未成年人个人信息,可由监护人授权同意或自行授权同意。

如您为未成年人(尤其是不满14周岁的未成年人),我们要求您请您的父母或其他监护人仔细阅读本隐私政策,并在征得您的监护人授权同意的前提下使用我们的服务或向我们提供信息。

如您是未成年人的监护人,请您关注您所监护的未成年人是否是在您授权同意之后使用我们的产品或服务。如果您对您所监护的未成年人的个人信息有疑问,请通过本隐私政策载明的方式与我们联系。

九、 本隐私政策如何更新

我们的隐私政策可能会适时发生变更。我们会在本页面上发布对本隐私政策所做的任何变更。对于重大变更,我们还会提供更为显著的通知(我们可能会通过在浏览页面做特别提示等方式,说明隐私政策的具体变更内容)。未经您明确同意,我们不会削减您按照本隐私政策所应享有的权利。

本隐私政策所指的重大变更包括但不限于:我们的服务模式发生重大变化;个人信息共享、转让或公开披露的主要对象发生变化;您参与个人信息处理方面的权利及其行使方式发生重大变化;我们的联系方式及投诉渠道发生变化;个人信息安全影响评估报告表明存在高风险时。

我们还会将本隐私政策的旧版本存档,供您查阅。

十、 如何联系我们

如果您对本政策或个人信息保护有任何问题,您可以将您的书面疑问、意见或建议通过以下地址寄至客服部门:

名称:闲者拾光

地址:重庆市潼南区桂林街道办事处五湖路636号潼南人工智能创新中心5楼501室20工位

或您也可以通过以下电话与客服部门进行联系:

联系电话:18523125612

一般情况下,我们将在十五个工作日内回复。如果您对我们的回复不满意,特别是我们的个人信息处理行为损害了您的合法权益,您还可以向网信、电信、公安及工商等监管部门进行投诉或举报,或通过向被告住所地有管辖权的法院提起诉讼来寻求解决方案。

]]>
http://www.wongpeace.com/2023/06/02/840/feed/ 0
用户协议 http://www.wongpeace.com/2023/04/10/832/ http://www.wongpeace.com/2023/04/10/832/#respond Mon, 10 Apr 2023 08:37:39 +0000 http://www.wongpeace.com/?p=832 Continue reading 用户协议]]> 欢迎您使用闲者拾光提供的游戏产品。在使用我们的产品之前,请仔细阅读本协议。

在游戏期间还请注意:抵制不良游戏,拒绝盗版游戏。注意自我保护,谨防受骗上当。适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。

知识产权声明

我们是闲者拾光游戏的知识产权权利人,及/或已从合法权利人处取得合法授权,从而有权为用户提供游戏,及/或游戏服务。闲者拾光游戏(包括但不限于游戏整体及游戏涉及的所有内容、组成部分或构成要素)的一切著作权、商标权、专利权、商业秘密等知识产权及运营该等游戏等其他一切合法权益,以及与游戏相关的所有信息内容(包括但不限于文字、图片、音频、视频、图表、界面设计、版面框架、有关数据或电子文档等)均受中华人民共和国法律法规和中华人民共和国加入并签署的国际条约保护,我们享有上述知识产权和合法权益,但相关权利人依照中华人民共和国法律规定应享有的权利除外。

未经闲者拾光事先书面同意,您不得以任何方式将闲者拾光游戏(包括但不限于游戏整体及游戏涉及的所有内容、组成部分或构成要素)进行商业性使用。

尽管本协议有其他规定,您在使用闲者拾光游戏服务中产生的游戏数据的所有权和知识产权及相关权益归闲者拾光所有,闲者拾光有权保存、处置该游戏数据。其中,闲者拾光对用户购买游戏虚拟货币的购买记录的保存期限将遵守相关法律及国际政策的有关规定。对其他游戏数据的保存期限由闲者拾光自行决定,但国家法律法规另有规定的从其规定。

闲者拾光游戏服务可能涉及第三方知识产权,如相关第三方对您在闲者拾光游戏服务中使用该等知识产权有要求的,闲者拾光将以适当的方式将该等要求告知于您,您应当遵守该等要求。

本协议未明确授予您的权利均由闲者拾光保留。

游戏软件使用许可与限制

闲者拾光可能为不同的终端设备或操作系统开发了不同的软件版本,包括但不限于Windows、iOS、Android、Windows Phone、Symbian、BlackBerry等多个应用版本,您应当根据实际情况选择下载合适的版本进行安装,下载安装程序后,您需要按照该程序提示的步骤正确安装。

为了保证闲者拾光游戏服务的安全性和功能的一致性,闲者拾光有权对软件进行更新,或者对软件的部分功能效果进行改变或限制。

闲者拾光软件新版本发布后,旧版本的软件可能无法使用。闲者拾光不保证旧版本软件及相应的客户服务继续可用,请您随时核对并下载最新版本。

在用户同意接受本协议全部条款的前提下,闲者拾光同意授予用户个人的、非商业使用性质的、非营利性质的、可撤销的、可变更的、非专有的、不可转让和不可转授权的使用闲者拾光游戏软件及闲者拾光游戏服务的权利,您仅可在闲者拾光前述授权范围内在终端设备上下载、安装、登录、使用该游戏,并以闲者拾光指定的方式运行本游戏软件的合法副本并享受闲者拾光提供的服务。

闲者拾光基于本协议授予用户的许可是针对个人使用的许可。如用户有需要在个人使用的范围以外使用闲者拾光游戏软件及闲者拾光游戏服务或者将闲者拾光游戏软件与闲者拾光游戏服务用于任何商业用途,则用户应与闲者拾光联系并获得闲者拾光另行书面授权。任何未经闲者拾光许可的安装、使用、访问、显示、运行、商业使用等行为均属对闲者拾光的侵权。

除非本协议另有约定,否则,未经闲者拾光事先书面同意,用户不得实施下列行为(无论是营利的还是非营利的):

(1)复制、翻录、反编译(de-compile)、反汇编(disassemble)、传播和陈列闲者拾光游戏软件的程序、使用手册和其它图文音像资料的全部或部分内容,或对闲者拾光游戏软件的任何功能或程序进行反向工程(reverse engineering);

(2)公开展示和播放闲者拾光游戏,及/或闲者拾光游戏服务的全部或部分内容;

(3)出租、销售闲者拾光游戏及/或利用闲者拾光游戏从事任何营利或非营利行为;

(4)修改或遮盖闲者拾光游戏程序、图像、动画、包装和手册等内容上的服务名称、公司标志、商标(或)版权信息、其他知识产权声明等内容;及/或

(5)其它违反商标法、著作权法、计算机软件保护条例和相关法律法规、任何可适用的国际条约的行为。

资费政策

闲者拾光有权决定闲者拾光游戏及闲者拾光游戏服务的收费方式和资费标准,闲者拾光有权就闲者拾光游戏和闲者拾光游戏服务在不同阶段确定不同的收费方式和资费标准,且闲者拾光有权根据需要对收费方式或资费标准随时进行调整。

游戏虚拟物品

游戏虚拟物品(或简称“虚拟物品”)包括但不限于游戏角色、资源、道具(包括但不限于游戏中的武器、坐骑、宠物、装备等)等,其所有权归闲者拾光,用户只能在合乎法律规定的情况下,根据游戏规则在游戏内进行使用。

游戏中各类虚拟物品,如对使用期限无特殊标识的,均默认用户可在获得使用权后持续使用,直至相应闲者拾光游戏服务终止;如对使用期限有特殊标识的,则其使用期限以特殊标识的期限为准,超过使用期限的,闲者拾光有权不另行通知用户而随时收回其使用权(该使用期限一经起算不因任何原因而中断、中止或重新起算)。

用户信息保护与收集

闲者拾光要求用户提供与其个人身份有关的信息资料时,应当事先以明确且易见的方式向用户公开其隐私保护政策和个人信息利用政策,并采取必要措施保护用户的个人信息资料的安全。

未经用户许可闲者拾光不得向任何第三方提供、公开或共享用户注册资料中的姓名、个人有效身份证件号码、联系方式、家庭住址等个人身份信息,但下列情况除外:

(1) 用户或用户监护人授权闲者拾光披露或使用的;

(2) 有关法律要求闲者拾光披露的;

(3) 司法机关或行政机关基于法定程序要求闲者拾光提供的;

(4) 闲者拾光为了维护自己合法权益而向用户提起诉讼或者仲裁时;及/或

(5) 应用户监护人的合法要求而提供用户个人身份信息时。

用户理解并同意,在下列任一情形下,闲者拾光有权将用户的游戏账号纳入相应的防沉迷系统,采取相应的防沉迷措施

免责声明

闲者拾光游戏服务以“现状”提供给您,闲者拾光不保证:闲者拾光游戏服务无错误及不会中断、所有缺陷已被更正、或闲者拾光游戏服务不会受到病毒或任何其它因素的损害;除非有法律明确规定,闲者拾光在此明确声明不承担任何明示或默示的担保责任,包括但不限于对闲者拾光游戏服务的性能、适用性、准确性、完整性、无病毒、无错误或不侵权的担保。

在任何情况下,闲者拾光不对因不可抗力导致的您在使用闲者拾光游戏服务过程中遭受的损失承担责任。该等不可抗力事件包括但不限于国家法律、法规、政策及国家机关的命令或者其它的诸如地震、水灾、雪灾、火灾、海啸、台风、罢工、战争等不可预测、不可避免且不可克服的事件。

闲者拾光游戏可能因游戏软件Bug、版本更新缺陷、第三方病毒攻击或其他任何因素导致您的游戏角色、游戏道具、游戏装备及游戏币等账号数据发生异常。在数据异常的原因未得到查明前,闲者拾光有权暂时冻结该游戏账号;若查明数据异常为非正常游戏行为,闲者拾光有权恢复游戏账号数据至异常发生前的原始状态(包括但不限于向第三方追回被转移数据),且闲者拾光无须向您承担任何责任。

闲者拾光未授权您从任何第三方通过购买、接受赠与或者其他的方式获得游戏账号、游戏道具、游戏装备、游戏币等,闲者拾光不对第三方交易的行为负责,并且不受理因任何第三方交易发生纠纷而带来的申诉。

您理解并同意:通过闲者拾光游戏和闲者拾光游戏服务所取得的任何信息、资料,是否信任及使用,完全取决于您自己,并由您承担由该等信任及使用带来的系统受损、资料丢失以及其它任何风险。闲者拾光对在闲者拾光游戏和闲者拾光游戏服务中提及的任何第三方发出的信息,都不作担保。第三方在闲者拾光游戏中投放的广告、链接或者其它形式的推广内容,均是由其自行提供的,您应当自行判断其真实性,闲者拾光对其推广内容不作任何明示或者默示的担保。

您理解并同意:不同操作系统(比如安卓Android、苹果iOS)之间存在不互通的客观情况,该客观情况并非闲者拾光造成,由此可能导致您在某一操作系统中的充值和游戏数据不能顺利转移到另一操作系统中。由于您在不同系统进行切换造成的充值损失和游戏数据丢失等风险应由您自行承担,不得要求闲者拾光承担任何责任。

闲者拾光对本协议项下涉及的境内外基础电信运营商的固定及移动通信网络的故障,各类技术缺陷、覆盖范围限制、不可抗力、计算机病毒、黑客攻击、您所在的位置、用户关机、合作方因素、他人故意或过失行为或其他非闲者拾光技术能力范围内的原因造成的服务中断、用户发送的数据或短信息的内容丢失、出现乱码、错误接收、无法接收、迟延接收等等,均不承担责任。

由于您个人失误、错误或不当操作导致的任何后果,由您自行承担责任,闲者拾光不予任何赔偿或补偿。

单机游戏特别说明

主体为单机游戏的闲者拾光游戏服务中,充值系统仅在接入互联网后方可使用,如您使用充值系统进行充值,将通过互联网确认充值信息。主体为单机游戏的闲者拾光游戏服务中,全部游戏数据将保存在您的终端设备上,一旦您卸载、重装闲者拾光游戏,或您的终端设备损坏导致闲者拾光游戏软件无法正常启动的,您的全部游戏数据将无法恢复。如您需将游戏数据保存在游戏服务器中的,需要联网进行数据保存操作。

协议的变更和生效

闲者拾光有权在必要的时候修改本协议条款,用户可在闲者拾光游戏的官方网站页面及闲者拾光游戏产品内查阅最新版本的协议条款,敬请用户定期查询有关内容。

本协议条款变更后,用户如勾选同意并继续登录游戏或使用本协议涉及的服务,则视为用户已接受变更后的协议;用户如不接受变更后的协议,应当停止使用闲者拾光游戏服务。

用户所提供内容的知识产权及授权

闲者拾光尊重知识产权并注重保护用户享有的各项权利。在闲者拾光游戏服务中,您可能需要通过上传、发布等各种方式向闲者拾光提供内容。在此情况下,您仍然享有此等内容的完整知识产权。

您在此明确同意,您在提供前述内容的同时,不可撤销地授予闲者拾光及其关联公司一项全球性的、永久的免费许可,允许闲者拾光及其关联公司使用、传播、复制、修改、再许可、翻译、出版、表演及展示此等内容,以及使用此等内容创作衍生作品。

]]>
http://www.wongpeace.com/2023/04/10/832/feed/ 0
FreeMenFreeTime Games Privacy Policy http://www.wongpeace.com/2023/02/25/822/ Sat, 25 Feb 2023 08:46:09 +0000 http://www.wongpeace.com/?p=822 Continue reading FreeMenFreeTime Games Privacy Policy]]> Welcome to use FreeMenFreeTime game products (“24 Solar Terms(四季之春)”, “Downstairs Explorer (二哈下楼记)”, “Place It”, “Snake(小蛇蛇大冒险)”)! We take protecting your personal information and privacy very seriously. You can learn about our collection, use, and storage of users’ personal information and your related rights through the ” FreeMenFreeTime Game Product Privacy Policy”. Please read carefully and fully understand the relevant content:

In order to provide you with game services, we will collect, use, and store necessary information in accordance with the ” FreeMenFreeTime Game Product Privacy Policy”.
Based on your express authorization, we may apply to enable your [geolocation access] device permission, and you have the right to refuse or cancel the authorization.
You can access, correct, and delete your personal information, and you can also withdraw your authorization, cancel your account, complain and report, and adjust other privacy settings.
We have adopted industry-standard security measures to protect your personal information.
If you are a minor, please read this Privacy Policy carefully with your guardian, and use our services or provide us with personal information with the authorization and consent of your guardian.
Please read the full version of ” FreeMenFreeTime Game Product User Agreement” and ” FreeMenFreeTime Game Product Privacy Policy” for details.

If you agree to the ” FreeMenFreeTime Game Product User Agreement” and ” FreeMenFreeTime Game Product Privacy Policy”, please click “Agree” to start using our products and services, and we will do our best to protect your personal information.

Updated date: September 28, 2021

Effective Date: September 28, 2021

FreeMenFreeTime Game Product Privacy Policy
FreeMenFreeTime (registered address: Station 20, Room 501, 5th Floor, Tongnan Artificial Intelligence Innovation Center, No. 636, Wuhu Road, Guilin Subdistrict Office, Tongnan District, Chongqing, hereinafter referred to as “we”) is a mobile application “24 Solar Terms(四季之春) “, “Downstairs Explorer (二哈下楼记)”, “Place It”, “Snake(小蛇蛇大冒险)”)! (hereinafter referred to as ” FreeMenFreeTime game products”). We attach great importance to protecting the personal information and privacy of users (hereinafter referred to as “you”). When you use FreeMenFreeTime game products, we will collect, use, save and share your relevant personal information. In order to present how we process your personal information, we have formulated the ” FreeMenFreeTime Game Product Privacy Policy” (hereinafter referred to as “Privacy Policy”), and we promise to process your personal information in strict accordance with this Privacy Policy.

We hereby remind you:

Before you use FreeMenFreeTime game products, please be sure to read this Privacy Policy carefully to fully understand the contents of each clause, including but not limited to the clauses that exempt or limit our responsibilities. You know and confirm that by ticking “Agree” to this Privacy Policy and using FreeMenFreeTime game products, you agree that we will process your personal information in accordance with this Privacy Policy. Please be aware that this policy only applies to the information collected by us to provide services to you through FreeMenFreeTime game products, and does not apply to the information collected by third parties who access FreeMenFreeTime game products to provide you with products or services.

This Privacy Policy will help you understand the following:

  1. How we collect and use your personal information
  2. How do we store your personal information
  3. How do we use Cookies
  4. How do we share, transfer and publicly disclose your personal information

V. How third-party products or services obtain your personal information

  1. How do we protect your personal information
  2. How do you manage your personal information
  3. How do we handle personal information of minors
  4. How to update this privacy policy
  5. How to contact us
  6. How we collect and use your personal information

(1) How do we collect your personal information

During your use of FreeMenFreeTime game products, we will collect your personal information in the following ways:

complete registration
When you register for a FreeMenFreeTime game product account, we need to collect your mobile phone number and login password. We collect your above information to help you complete the registration of your FreeMenFreeTime game product account and protect your account security. If you do not provide such information, we will not be able to create an account for you and provide you with services normally.

  1. Game Services

When you use game services, we need to collect the device ID, device name, device type and version you use. We collect your above information to ensure your normal use of our services, maintain the normal operation of the basic functions of the game, optimize the performance of game products, and enhance your game experience. If you do not provide such information, you will not be able to use the game service.

  1. Real-name authentication

When you perform real-name authentication, we need to collect your name, ID type, and ID number. At the same time, in order to achieve the purpose of real-name authentication, you agree and authorize us to provide, query, and check your aforementioned identity information to relevant real-name authentication agencies (such as personal credit agencies, government departments, etc.) by ourselves or by entrusting a third party. We collect your above information to fulfill our legal obligations, verify the real identity of the user, identify the age of the user, and ensure the security of the system and services. If you do not provide such information, you will not be able to log in to FreeMenFreeTime game products or be subject to corresponding restrictions in the process of using FreeMenFreeTime game products.

  1. Ensuring the security of the network and services

In order to ensure the security of network and game services, we will collect your device identifier, IP address, access date and time. We collect your above information to create a fair, healthy and safe gaming environment, and to combat behaviors that disrupt the fair environment of the game or interfere with or disrupt the normal operation of game services (such as detecting piracy, scanning cheats, preventing cheating, etc.). If you do not provide the above information, you will not be able to use game services.

  1. Recharge consumption

FreeMenFreeTime game products do not contain in-game purchases.

(2) Invocation of device permissions

During your use of FreeMenFreeTime game products, we need to apply to you for device permissions within the necessary scope. Please be aware that we will not enable your device permissions by default. FreeMenFreeTime game products may collect your information through device permissions only if you actively confirm that it is enabled. Please refer to the following table for the permissions invoked by FreeMenFreeTime game products, the purpose of invoking permissions, and the situation that you will be asked before invoking permissions:

Device permissions The purpose of invoking permissions Whether to ask whether the user can close the permissions
Internet connection is possible
Access location information Serve precise ads Yes Yes
If you want to turn off the permission after authorizing the permission for the first time, you can choose to turn off the permission in the settings function of the device to refuse us to collect the corresponding personal information.

(3) How we use your personal information

We will use the collected personal information in accordance with the agreement of this policy and for the purpose of realizing our services.
Please note that all personal information you provide when using our services will continue to be authorized for use by us during your use of our services, unless you delete or refuse our collection through system settings. When you cancel your account, we will stop using and delete your personal information.
We will collect statistics on the usage of the services we provide, and may share these statistical information with the public or third parties for the purposes of product development, service optimization, and security protection. However, these statistics do not contain any personally identifiable information about you.
When we want to use your personal information for other purposes not specified in this policy, or use the information collected based on specific purposes for other purposes, we will ask for your consent in advance through the form of your voluntary ticking .
(4) Other rules

According to relevant laws, regulations and national standards, we may collect and use your relevant personal information without asking for your authorization and consent in the following situations:

Related to our fulfillment of obligations stipulated by laws and regulations;
Directly related to national security and national defense security;
Directly related to public security, public health, and major public interests;
Directly related to criminal investigation, prosecution, approval and execution of judgments;
In order to protect the major legal rights and interests of the personal information subject or other individuals such as life and property, but it is difficult to obtain the authorization and consent of the individual;
The personal information involved is disclosed to the public by the personal information subject or guardian;
It is necessary to sign and perform a contract according to the requirements of the personal information subject;
Collecting personal information from legally disclosed information, such as legal news reports, government information disclosure and other channels;
Necessary to maintain the safe and stable operation of the products or services provided, such as discovering and handling product or service failures.

  1. How do we store your personal information

We will keep your personal information within the shortest retention period required for the purpose stated in this policy and required by laws and regulations. After the aforementioned period expires, we will delete or anonymize your personal information.

  1. The personal information we collect and generate during our operations in China will be stored in China (for the purpose of this privacy policy, “in China” does not include Hong Kong, Macao and Taiwan regions of China), except for the following circumstances:

(1) There are clear provisions in the law;

(2) Obtain your express authorization;

(3) Your request for overseas services and other personal initiative.

In view of the above situations, we will ensure that your personal information is adequately protected in accordance with this Privacy Policy and relevant laws and regulations. How we use Cookies and similar technologies

  1. How do we use Cookies and similar technologies

How we use cookies
(1) By using Cookies, we provide users with a safe and personalized service experience. We and our third-party partners will store Cookies, Flash Cookies, or other local storage provided by your browser (or associated applications) on your computer or mobile device, usually including identifiers, site names, and some numbers and characters (above collectively referred to as “Cookies”). We and our third-party partners may collect your information through Cookies and use the information for the following purposes:

Security Cookies: Cookies can help us ensure the safe and efficient operation of our products and services.
Recommendation Cookies: Cookies can help us recommend, display, and push content that you may be interested in.
(2) The collection and use of your information by third-party partners through Cookies is not governed by this policy, but by their own information protection statement, and we are not responsible for third-party Cookies or similar technologies.

(3) If your browser or browser add-on services allow, you can modify the acceptance of Cookies or reject our Cookies. See https://www.aboutcookies.org/ for details. However, if you do so, it may affect your safe use of our products or services in some cases. At the same time, you will still receive product or service information, but the relevance of these product or service information to you will be reduced.

  1. How we use similar technologies

We will serve users as our purpose and use similar technologies in compliance with relevant laws and regulations.

  1. How do we share, transfer and publicly disclose your personal information

Commissioned processing
We will entrust third-party service providers to process your personal information collected by us so that they can provide us with product or technical support such as infrastructure technology, data analysis, advertising placement, and marketing decisions. The above-mentioned entrusted processing behaviors are bound by the purposes stated in this policy, and we will supervise the above-mentioned entrusted third-party service providers in a contractual manner.

  1. Sharing

(1) Obtain your explicit consent or authorization in advance, or you request us to share your personal information with third parties by email or other means;

(2) According to the applicable laws and regulations, or in accordance with the mandatory requirements of the competent government department;

(3) Sharing with our affiliated companies: We may share your personal information with our affiliated companies; however, we will only share necessary personal information and are bound by the purposes stated in this policy; affiliated companies will also share your personal information based on This policy adopts the same security measures to protect the security of your personal information;

(4) Sharing with our business partners. We may share your personal information with third party advertisers. The purpose for us to share this information is necessary to realize the service, for example, we need to share your geographic location information with third-party advertisers to provide you with more accurate advertising services.

  1. Transfer

We will not transfer your personal information to any company, organization or individual, but when it involves mergers, acquisitions, asset transfers or bankruptcy liquidation, if the transfer of personal information is involved, we will inform you of the relevant situation and require a new Companies and organizations that hold your personal information continue to be bound by this policy, otherwise we will require the company or organization to obtain your authorization and consent again.

  1. Public disclosure

Unless otherwise agreed in this contract or clearly stipulated by law, we will not publicly disclose your personal information.

  1. Exceptions

In addition, according to relevant laws and national standards, we may share, transfer, and publicly disclose personal information in the following situations without your prior authorization and consent:

(1) Related to our fulfillment of obligations stipulated by laws and regulations;

(2) Directly related to national security and national defense security;

(3) Directly related to public security, public health, or major public interests;

(4) Directly related to criminal investigation, prosecution, trial and execution of judgments;

(5) In order to protect the major legal rights and interests of the personal information subject or other individuals such as life and property, but it is difficult to obtain the authorization and consent of the individual;

(6) Personal information disclosed to the public by the personal information subject or guardian;

(7) Collecting personal information from legally disclosed information, such as legal news reports, government information disclosure and other channels.

  1. Please note that the information you share voluntarily or even publicly when using our services may involve personal information or even sensitive personal information of you or others. Please share or disclose with caution, and if the information involved contains personal information of others, please obtain the consent of others before sharing or disclosing.
  2. Please be informed that according to the law, if we take technical measures and other necessary measures to process personal information, so that the data recipient cannot re-identify a specific individual and cannot restore it, the sharing, transfer, and public disclosure of the above-mentioned processed data do not require separate To notify you and obtain your consent.

V. How third-party products or services obtain your personal information

In order to provide you with richer and more complete functions, we will use the following third-party software development kit (“SDK”) to provide services to you. For the specific information collection and use of the SDK, please refer to the privacy policy or related statement of the SDK operator. Click “Third-Party SDK Service Provider Directory” to view the SDK details of our authorized partners.

SDK name SDK purpose of use Information collected by SDK Privacy policy link
AdTiming advertising cooperation device model, operating system version, IP address https://www.adtiming.com/cn/privacy-policy.php

Unity will access the gravity sensor to adapt to the current screen rotation.
Unity Analytics analysis and statistics Device model, operating system version, address location information https://unity3d.com/cn/legal/privacy-policy

  1. How do we protect your personal information

We attach great importance to the security of personal information and take all reasonable and feasible measures to protect your personal information:

We have adopted industry-wide data protection technology and management measures, such as network isolation, data encryption, employee access control and other measures, to prevent unauthorized access, disclosure, tampering, loss or destruction.
Please be aware that although we will try our best to ensure or guarantee the security of any information you send us, the Internet environment is not 100% safe, and we will not be liable for any risks and losses arising therefrom or related thereto.
After an unfortunate personal information security incident occurs, we will promptly inform you in accordance with the requirements of laws and regulations: the basic situation and possible impact of the security incident, the disposal measures we have taken or will take, and the measures that you can independently prevent and reduce risks. Suggestions, remedies for you, etc. We will promptly inform you of the relevant situation of the incident through application push, email, text message, phone call, etc. When it is difficult to inform the personal information subject one by one, we will issue an announcement in a reasonable and effective manner. At the same time, we will also actively report the handling of personal information security incidents in accordance with the requirements of the regulatory authorities.

  1. How do you manage your personal information

During your use of FreeMenFreeTime game products, you can contact us through the prompts on the corresponding page or the methods specified in this privacy policy to access, correct, delete your personal information, and exercise the right to change the scope of authorization consent and cancel your account. Comments will be dealt with in a timely manner.

Access and correct your personal information
If you wish to access or correct your personal information, you may contact us through the methods specified in this Privacy Policy, and we will respond to your request in a timely manner.

  1. Deletion of your personal information

In the following circumstances, you may request us to delete personal information through the methods specified in this Privacy Policy:

We collect and use personal information in violation of laws, administrative regulations or agreements with you;
If we share or transfer your personal information with a third party in violation of laws, administrative regulations or agreements with you, we will immediately stop the sharing and transfer and notify the third party to delete it in time;
If we publicly disclose your personal information in violation of laws, administrative regulations or agreements with you, we will immediately stop the public disclosure and issue a notice requesting the relevant recipients to delete the corresponding information;
You no longer use our products or services, or you cancel your account, or we terminate our services and operations.

  1. Change the scope of your authorization and consent

You can change the scope of consent or withdraw your authorization by contacting us through device permission settings or the methods specified in this Privacy Policy.

Please understand that FreeMenFreeTime game products may need to open some permissions and collect necessary personal information to be realized. When you withdraw your consent, we will not be able to continue to provide you with the services corresponding to the withdrawal of consent, but it will not affect the personal information processing services previously carried out based on your authorization.

  1. Cancellation of account

If you want to cancel your account, you can contact us according to the methods stated in this Privacy Policy, and we will respond to your request in a timely manner.

Your cancellation of the above account is irreversible. We will stop providing you with products or services, no longer collect your personal information, and delete or anonymize the personal information related to your account according to your requirements.

  1. To respond to your above request

If you are unable to exercise your rights in the above way, you can contact us through the contact methods stated in this Privacy Policy. For security purposes, you may be required to provide a written request or otherwise prove your identity. We may ask you to verify your identity before processing your request.

For your reasonable request, we do not charge fees in principle, but for repeated requests that exceed reasonable limits, we will charge a certain cost depending on the circumstances. We may reject requests that are unreasonably repetitive, require excessive technical means, pose risks to the legitimate rights and interests of others, or are very impractical.

  1. Exceptions to Response Situations

We will not be able to respond to your request in the following circumstances:

In connection with our fulfillment of our obligations under laws and regulations;
Directly related to national security and national defense security;
Directly related to public safety, public health, and major public interests;
Directly related to criminal investigation, prosecution, trial and execution of judgments;
We have sufficient evidence that the subject of personal information has subjective malice or abuse of rights;
In order to protect the major legal rights and interests of the personal information subject or other individuals such as life and property, but it is difficult to obtain the consent of the individual;
Responding to the request of the personal information subject will cause serious damage to the legitimate rights and interests of the personal information subject or other individuals or organizations;
involving trade secrets.

  1. How do we handle personal information of minors

We attach great importance to the protection of minors’ personal information. According to relevant laws and regulations, the collection and use of personal information of minors under the age of 14 requires the authorization and consent of the guardian; the collection and use of personal information of minors under the age of 14 but under the age of 18 requires the authorization and consent of the guardian Or authorize and agree on your own.

If you are a minor (especially a minor under the age of 14), we ask you to ask your parents or other guardians to read this Privacy Policy carefully, and use our services with your guardian’s authorization and consent or provide us with information.

If you are the guardian of a minor, please pay attention to whether the minor under your guardianship uses our products or services after your authorization and consent. If you have any questions about the personal information of the minors under your guardianship, please contact us through the methods stated in this Privacy Policy.

  1. How to update this Privacy Policy

Our Privacy Policy may change from time to time. We will post any changes to this Privacy Policy on this page. For major changes, we will also provide more prominent notices (we may explain the specific changes to the privacy policy by making special reminders on the browsing page, etc.). We will not reduce your rights under this Privacy Policy without your express consent.

The major changes referred to in this Privacy Policy include, but are not limited to: major changes in our service model; major changes in the main objects of personal information sharing, transfer or public disclosure; major changes in your rights to participate in the processing of personal information and how to exercise them ; Changes in our contact information and complaint channels; when the personal information security impact assessment report indicates that there is a high risk.

We will also archive previous versions of this Privacy Policy for your review.

  1. How to contact us

If you have any questions about this policy or personal information protection, you can send your written questions, comments or suggestions to the customer service department at the following address:

Name: FreeMenFreeTime

Address: Room 20, Room 501, 5th Floor, Tongnan Artificial Intelligence Innovation Center, No. 636, Wuhu Road, Guilin Subdistrict Office, Tongnan District, Chongqing

Or you can also contact the customer service department by the following phone numbers:

Contact number: +8618523125612

Normally, we will reply within fifteen working days. If you are dissatisfied with our reply, especially if our personal information processing behavior has damaged your legitimate rights and interests, you can also file a complaint or report to the regulatory authorities such as cyberspace, telecommunications, public security and industry and commerce, or submit a complaint to the defendant’s domicile A court of competent jurisdiction seeks a solution by filing an action.

]]>
Collider2D 的点击响应关系顺序 http://www.wongpeace.com/2022/05/31/818/ http://www.wongpeace.com/2022/05/31/818/#respond Tue, 31 May 2022 07:16:45 +0000 http://www.wongpeace.com/?p=818 Continue reading Collider2D 的点击响应关系顺序]]> 随着四季项目越做越大,里面的碰撞器也越来越复杂,有时候莫名的出现一些明明显示在最上层的物品,但是却点击不了现象。

为了处理以上问题,我必须得摸清Collider2D会受到什么样的影响

  • SpriteRenderer 的 Order in Layer
  • SpriteRenderer 的 Sorting Layer
  • SortingGroup
  • 不同的父对象
  • Y轴 (我们游戏使用了Transparency Sort Axis 的Y进行视觉排序)
  • Z轴
  • 层级关系

测试结果如下:

项目影响
Order in Layer值大响应
Sorting Layer层深响应
SortingGroup
父对象
Y
Z越靠近摄像机越快响应
层级关系
所有测试均在其它值相等或者影响的情况下进行

最后比较重要的一步,当场景中没有SpriteRenderer时也需要测试,结论如下:

SpriteRenderer == null 时,此物品相关于Sorting Layer 为Default,Order In Layer为0。

在以上所有有影响的值都相同的情况下,判断到底响应哪一个,测试如下:

最后坐标移动者响应。(我在Scene拖动的)

优先级 Sorting Layer > Odder In Layer > 坐标Z > 最后坐标变动者

以上,所以想要正确的响应碰撞事件,请务必使用SpriteRenderer进行管理(空的SpriteRenderer也行)。

最后,提前祝即将年满18岁的我节日快乐。

]]>
http://www.wongpeace.com/2022/05/31/818/feed/ 0
Unity PackageManager 自定包与Git仓库 http://www.wongpeace.com/2022/04/23/813/ http://www.wongpeace.com/2022/04/23/813/#respond Sat, 23 Apr 2022 08:42:41 +0000 http://www.wongpeace.com/?p=813 Continue reading Unity PackageManager 自定包与Git仓库]]> 很长一段时间,UPM(Unity Package Manager)对国内用户不是很友好,特别是那种天然屏蔽的网址。

但是你一旦用了这个,就会觉得这个真香,有点类似于npm。

简易的开始

第1步 环境

新建一个Unity项目,或者打开现有项目。

第2步 新建Git仓库

私有的有凭据也是可行的,并克隆到Unity项目的Assets目录下。

第3步 初始化

可以在 这里官方地址 大概了解下,关于此文件夹必须包含的文件,可以参考 这里。拿自己的项目举例(地址

这里简单描述一下包含的内容

  • MzParse 为Git根目录
  • Runtime 为实时脚本目录,其下的Unity.MzParse为asmdef文件(注意这里面的命令参考这里),其余文件是主要功能脚本
  • CHANGELOG为版本Log
  • LICENSE为许可文件
  • package.json 是必要的,包含包的详情文件
  • README,这个随便吧,感觉不要也行。

第4步 package.json文件

这个也可以查看官网介绍, 地址在这里

同样此包的示例:

{
	"name": "com.mz.parse",
	"displayName": "MzParse",
	"description": "Parse for Unity",
	"version": "1.0.5",
	"unity": "2019.3",
	"license": "MIT",
	"author": {
		"email": "39531984@qq.com",
		"name": "MzStudio",
		"url": "http://www.wongpeace.com/"
	}
}

第5步,上传与安装

搞定之后,把你的代码上传到Git,此时可以在其它项目里面载入此包了。方式有两种

## Add In PackageManager 

     Window -> Package Manager -> + -> Add package from git URL... -> https://gitee.com/wongpeace/MzParse.git -> Add

## Add In manifest.json

    "com.mz.parse": "https://gitee.com/wongpeace/MzParse.git",

OK,大功造成

]]>
http://www.wongpeace.com/2022/04/23/813/feed/ 0
协同程序 async/await 与 Coroutine http://www.wongpeace.com/2022/04/20/808/ http://www.wongpeace.com/2022/04/20/808/#comments Wed, 20 Apr 2022 02:10:39 +0000 http://www.wongpeace.com/?p=808 Continue reading 协同程序 async/await 与 Coroutine]]> 对应的形象区别:

一个简单的例子

等待5秒输出Log

Coroutine:

private void Start()
    {
        StartCoroutine(WaitCoroutine(5, () => Debug.Log("Coroutine Finished")));
    }

    private IEnumerator WaitCoroutine(float time, Action method)
    {
        yield return new WaitForSeconds(time);
        //you code:
        method?.Invoke();
    }

async / await

using System;
using System.Threading.Tasks;



    private void Start()
    {
        //StartCoroutine(WaitCoroutine(5, () => Debug.Log("Coroutine Finished")));
        WaitTask(5, () => Debug.Log("Task Finished"));
    }

    private async void WaitTask(float time, Action method)
    {
        float startTime = Time.time;
        float currentTime = startTime;
        while (currentTime - startTime < time)
        {
            currentTime += Time.deltaTime;
            await Task.Yield();
        }

        method?.Invoke();
    }

简评:感觉差不多,甚至好像await实现方式还要复杂一点?


扩展应用:一个复杂的例子

要求绕Z轴旋转2圈并且向右以2米/s的速度移动5秒后,原地停止1秒,向上移动5米并且缩小到一半大小,共2秒,然后输入Log

Coroutine: ???

async / await

private async void BeginTest()
    {
        List<Task> tasks = new List<Task>();

        var from = transform.localEulerAngles;
        var to = from;
        to.z += 720;
        var act1 = TimeCount(5, (c, s) =>
        {
            transform.localEulerAngles = Vector3.Lerp(from, to, c / s);
            transform.position += new Vector3(2, 0, 0) * Time.deltaTime;
        });

        tasks.Add(act1);
        tasks.Add(TimeCount(1));
        from = transform.localScale;
        to = from / 2;

        var pos = transform.position;
        var toPos = pos;
        toPos.y += 5;

        var act3 = TimeCount(2, (c, s) =>
        {
            transform.localScale = Vector3.Lerp(from, to, c / s);
            transform.position = Vector3.Lerp(pos, toPos, c / s);
        });
        tasks.Add(act3);

        await Task.WhenAll(tasks);

        Debug.Log("Finished!");
    }

    private async Task TimeCount(float time, Action<float, float> method = null)
    {
        float startTime = Time.time;
        float currentTime = startTime;
        while (currentTime - startTime < time)
        {
            currentTime += Time.deltaTime;
            method?.Invoke(currentTime - startTime, time);
            await Task.Yield();
        }
    }

简评:await 香。

]]>
http://www.wongpeace.com/2022/04/20/808/feed/ 1
你可能还不知道 SerializeReference 有多强大! http://www.wongpeace.com/2022/01/28/801/ http://www.wongpeace.com/2022/01/28/801/#respond Fri, 28 Jan 2022 02:10:19 +0000 http://www.wongpeace.com/?p=801 Continue reading 你可能还不知道 SerializeReference 有多强大!]]> 这个特性源自Unity2019.3版本的更新上,在版本发行的说明上,只有简短的一行!但是开发者对于此特性的讨论是连绵不绝的。

我一度认为这个升级,比其它的新的功能或者升级的功能的价值都要高。最直观的就是,当你想写一套完整的FSM框架时,这个特性将你的成本缩短到以前的1/10,甚至更多!

多态

多态这个特性,在序列化这一块一直都是头疼的问题,还是拿FSM来举例吧:

[Serializable]
public class FsmState
{
    [SerializeReference] 
    private List<FsmStateAction> actions = new List<FsmStateAction>();
}

public class FsmStateAction { ... }

public class WaitAction : FsmStateAction { ... }
public class PlayAction : FsmStateAction { ... }

//添加到字段里
fsmState.actions.Add(new WaitAction());
fsmState.actions.Add(new PlayAction());

如上所示,actions会根据不同类型的Action而显示在Inspector中。

好处:

  • 不用为每个Action单独的写Inspector类
  • 不用单独写一份保存Action的数据逻辑 (之前通常为穷举所有数据类型,或者自定义解析/反解析字符串)
  • 不用单独写一分序列化数据的逻辑(之前通常是反射)

引用

之前的做法:

public class Fsm
{
    [SerializeField] private string startStateName;
    [SerializeField] private FsmState[] allStates;
    private FsmState startState;

    private FsmState GetState(string name) { ... }

    public void Init()
    {
        startState = GetState(startStateName);
    }
}

现在的做法:

public class Fsm
{
    // public string startStateName;
    [SerializeReference] private FsmState[] allStates;
    [SerializeReference] private FsmState startState;

    private FsmState GetState(string name) { ... }

    public void Init()
    {
        // startState = GetState(startStateName);
    }
}

好处:

  • 当修改State名字时,不必恐慌你所引用的StateName没有更新。
  • 不需要再去寻找State,编辑器通过引用已经帮你实例。

下面也来说说SerializeReference的其它信息:

  • 好的:数据量自动优化,我尝试过在编辑器实例化100个引用字段出来,但是最终没有任务地方引用它们,当你以Text形式打开你的.prefab文件,你会发现,没有引用的字段全被干掉了。
  • 好的:所以的引用字段都以一个单独的id的形式,所以不会产生两个引用使用同一个id时产生数据的冗余。
  • 坏的:你必须写一套编辑器代码来对你带有SerializeReference进行添加与删除。
  • 坏的:如果你改了类名,引用将丢失。(你可以通过手改Prefab文件里面引用名来实现对应,这样的话,工作量就大了)
]]>
http://www.wongpeace.com/2022/01/28/801/feed/ 0
Animator 实现动画完成事件的一些思考 http://www.wongpeace.com/2021/12/05/790/ http://www.wongpeace.com/2021/12/05/790/#respond Sun, 05 Dec 2021 03:15:53 +0000 http://www.wongpeace.com/?p=790 Continue reading Animator 实现动画完成事件的一些思考]]> 动画事件

近来想在PlayMaker上Action上加一个播放动画并等待完成的功能,于是乎落入了井底深坑。

虽然处处设坎,但是也还是有两个可行的解决方案(注意这里可行的意思是只能在PlayMaker的Action上进行编辑操作,而不是通过加组件这种增加操作复杂性来解决问题):

  • 动态添加AnimationEvent做回调(同步事件)
  • 模拟当前动画进度做回调(非同步事件)

同步回调 AnimationEvent

先来说说事件这个,实现相对简单,因为事件是侦对AnimationClip而添加,所以这里实现大概又分以下几层:

  1. 给AnimationClip添加与移除事件。
  2. 实现通过Animator的Play与CrossFade来取到当前AnimationClip。
  3. 通过Mono实现回调事件与动画事件的结合。
  4. 把以上方法封装成扩展方法(一句代码搞定的那种)。
先看看最终的使用形态:
//Play
animator.Play(stateName, layer, normalizedTime, Callback);
//CrossFade
animator.CrossFade(stateName, layer, transitionDuration, Callback);
//等待当前动画播放完成
animator.AddFinishEventToCurrentState(Callback, layer);

public void Callback()
{
    Debug.Log("我播完了");
}
开始实现:
1、给AnimationClip添加与移除事件。
static private Dictionary<AnimationClip, AnimationEvent> dictClipToEndEvent = new Dictionary<AnimationClip, AnimationEvent>();

    /// <summary>
    /// 因为Unity的Clip的共用性质,一旦加入了一个之后,所有动画都加入了
    /// 所以会使用到DontRequireReceiver
    /// </summary>
    /// <param name="clip"></param>
    /// <param name="functionName"></param>
    static public void AddFinishEventToAnimationClip(this AnimationClip clip, string functionName)
    {
        if (clip != null)
        {
            if (dictClipToEndEvent.ContainsKey(clip))
            {
                //不同名的方法先移除,后添加
                if (functionName != dictClipToEndEvent[clip].functionName)
                    RemoveFinishEvent(clip);
                //同名方法无需重新设置
                else return;
            }

            AnimationEvent ev = new AnimationEvent();
            ev.time = clip.length;
            dictClipToEndEvent.Add(clip, ev);
            //在clip.AddEvent前必须设置好functionName否则不生效
            ev.functionName = functionName;
            //无需报错
            ev.messageOptions = SendMessageOptions.DontRequireReceiver;
            clip.AddEvent(ev);
        }
    }

    static public void RemoveFinishEvent(this AnimationClip clip)
    {
        if (dictClipToEndEvent.ContainsKey(clip))
        {
            if (clip.events.Length == 1) clip.events = null;
            else
            {
                List<AnimationEvent> events = new List<AnimationEvent>(clip.events);
                var e = dictClipToEndEvent[clip];
                if (events.Contains(e)) events.Remove(e);
                clip.events = events.ToArray();
            }

            dictClipToEndEvent.Remove(clip);
        }
    }
2、实现通过Animator的Play与CrossFade来取到当前AnimationClip。
/// <summary>
    /// 注意是Clip的名字不是 StateName
    /// 且此方法为运行中支持,不会影响到Clip的anim文件
    /// </summary>
    /// <param name="animator"></param>
    /// <param name="clipName"></param>
    /// <returns></returns>
    static public AnimationClip GetRuntimeClip(this Animator animator, string clipName)
    {
        AnimationClip[] clips = animator.runtimeAnimatorController.animationClips;
        if (clips != null && clips.Length > 0)
            for (int i = 0; i < clips.Length; i++)
            {
                if (string.Equals(clips[i].name, clipName))
                    return clips[i];
            }
        Debug.LogError("Don't find animation name :" + clipName + "\n使用此方法之前,请保证参数为Animator里面的动画名而非状态名");
        return null;
    }

    static public AnimationClip GetRuntimeCurrentClip(this Animator animator, int layer = 0)
    {
        var clipSource = GetCurrentClip(animator, layer);
        if (clipSource != null)
            return animator.GetRuntimeClip(clipSource.name);
        return null;
    }

    static public AnimationClip GetCurrentClip(this Animator animator, int layer = 0)
    {
        var clipInfos = animator.GetCurrentAnimatorClipInfo(layer);
        if (clipInfos == null) return null;
        if (clipInfos.Length > 0)
        {
            var clipSource = clipInfos[0].clip;
            return clipSource;
        }
        return null;
    }
3、通过Mono实现回调事件与动画事件的结合。
/// <summary>
    /// 此脚本在Clip的最后一帧上添加AnimationEvent,以做到回调
    /// </summary>
    public class AnimatorClipEventListener : MonoBehaviour
    {
        private Action onFinishState;
        private Animator animator;
        private bool IsInit = false;
        private int layer = 0;
        private string stateName = "";
        private AnimationClip clip; //实际添加了Clip事件的片段
        private AnimatorStateInfo CurStateInfo => animator.GetCurrentAnimatorStateInfo(layer);

        // Start is called before the first frame update
        private void Start()
        {

        }

        private void OnDestroy()
        {
            if (clip) clip.RemoveFinishEvent();
        }
        private bool IsInTransition() => animator.IsInTransition(layer);

        private void Init(Animator anim, Action act, int layer = 0, string stateName = "")
        {
            animator = anim;
            onFinishState = act;
            IsInit = true;
            this.layer = layer;
            this.stateName = stateName;
        }

        private void AddEvent()
        {
            clip = animator.GetRuntimeCurrentClip(layer);
            if (clip != null)
                clip.AddFinishEventToAnimationClip(nameof(_MzCallback));
            else
            {
                Debug.Log("Add event error", animator);
                _MzCallback();
            }
        }

        private bool CheckState()
        {
            if (!animator.HasState(stateName, layer))
            {
                _MzCallback();
                Debug.Log("Don't find stateName with " + stateName, animator);
                return false;
            }
            return true;
        }

        public void ListenCurrent(Animator animator, Action action, int layer = 0)
        {
            Init(animator, action, layer);
            AddEvent();
        }

        public void Play(Animator animator, string stateName, Action action, int layer = 0)
        {
            Init(animator, action, layer, stateName);
            if (!CheckState()) return;
            animator.Play(stateName, layer);
            StartCoroutine(DoInit());
        }

        public void CrossFade(Animator animator, string stateName, float fadeTime, Action cb, int layer = 0)
        {
            Init(animator, cb, layer, stateName);
            if (!CheckState()) return;
            animator.CrossFade(stateName, fadeTime, layer);
            StartCoroutine(DoInit());
        }

        private IEnumerator DoInit()
        {
            while (IsInTransition() || !CurStateInfo.IsName(stateName)) yield return new WaitForEndOfFrame();
            yield return new WaitForEndOfFrame();
            AddEvent();
        }

        public void _MzCallback()
        {
            onFinishState?.Invoke();
            onFinishState = null;
            Destroy(this);
        }
    }
4、把以上方法封装成扩展方法(一句代码搞定的那种)。
public static class _AnimatorClipFinishEventListener
    {
        static private AnimatorClipEventListener GetListener(Animator animator)
        {
            AnimatorClipEventListener listener = animator.gameObject.AddComponent<AnimatorClipEventListener>();
            return listener;
        }

        static public AnimatorClipEventListener Play(this Animator animator, string stateName, int layer, float norTime, Action cb)
        {
            AnimatorClipEventListener cbMono = GetListener(animator);
            cbMono.Play(animator, stateName, cb, layer);
            return cbMono;
        }

        static public AnimatorClipEventListener CrossFade(this Animator animator, string stateName, float fadeTime, Action cb, int layer = 0)
        {
            AnimatorClipEventListener cbMono = GetListener(animator);
            cbMono.CrossFade(animator, stateName, fadeTime, cb, layer);
            return cbMono;
        }

        static public AnimatorClipEventListener MzAddFinishEventToCurrentState(this Animator animator, Action cb, int layer = 0)
        {
            AnimatorClipEventListener cbMono = GetListener(animator);
            cbMono.ListenCurrent(animator, cb, layer);
            return cbMono;
        }

        static public AnimatorClipEventListener AddFinishEvent(this Animator animator, string clipName, Action cb)
        {
            AnimatorClipEventListener cbMono = GetListener(animator);
            cbMono.AddEvent(animator, clipName, cb);
            return cbMono;
        }
    }

模拟回调

未完待续

结语

加油,骚年。

]]>
http://www.wongpeace.com/2021/12/05/790/feed/ 0
Unity InputSystem 代码改变鼠标位置功能 http://www.wongpeace.com/2021/11/23/772/ http://www.wongpeace.com/2021/11/23/772/#respond Tue, 23 Nov 2021 09:39:33 +0000 http://www.wongpeace.com/?p=772 正题,既然是InputSystem,那就有可以用API供调用:

//声明
    static public Vector3 mousePosition
    {
        get => Mouse.current.position.ReadValue();
        set
        {
            Mouse.current.WarpCursorPosition(value);
            InputState.Change(Mouse.current.position, value);
        }
    }

    //运用
    vector3 pos = Vector3.zero;
    mousePosition = pos;

完~ 顺滑!!

盗个市面上的方法,如果想多平台,就别使用它:

[System.Runtime.InteropServices.DllImport("user32.dll")] //引入dll
public static extern int SetCursorPos(int x , int y);

 

]]>
http://www.wongpeace.com/2021/11/23/772/feed/ 0