假设一个游戏里玩家在游玩中可能获得宝箱且需要完成主线任务,宝箱是随机的,可有可无,而主线任务则不带奖励,且必须完成才能推进游戏进程。
讨论心理活动前先梳理一些定论,方便后面分析,首先提取变量:心理预期(期待)、付出、收获(激励)、结束心理状态(正反馈/满足/满意,负反馈/失望,平淡)。
一:激励 >= (期待+付出)-> 正反馈
二:激励 < (期待+付出)-> 负反馈
三:期待付出激励均无 -> 平淡
四:正反馈强度会等比提高下次期待值;负反馈……
假设一个游戏里玩家在游玩中可能获得宝箱且需要完成主线任务,宝箱是随机的,可有可无,而主线任务则不带奖励,且必须完成才能推进游戏进程。
讨论心理活动前先梳理一些定论,方便后面分析,首先提取变量:心理预期(期待)、付出、收获(激励)、结束心理状态(正反馈/满足/满意,负反馈/失望,平淡)。
一:激励 >= (期待+付出)-> 正反馈
二:激励 < (期待+付出)-> 负反馈
三:期待付出激励均无 -> 平淡
四:正反馈强度会等比提高下次期待值;负反馈……
原因分析:模型坐标OS转为屏幕坐标CS后,在光栅化时,CS刚好命中屏幕像素坐标,在计算像素包含关系时就会(有人说因为浮点,我感觉还有GPU算法,求解)漏掉,造成间隙,而Tilemap就表现为白线。
解决方法:在shader对所有CS进行偏移(其实可以只偏移命中部分,但if判断反而更消耗,而且偏移后效果可接受)
代码(修改Universal Render Pipeline/2D/Sprite-Lit-Default,黄色部分为修改内容):
【不准拒绝我】官方主页
【不准拒绝我】隐私政策
【按住你的心】隐私政策
Unity游戏启动时,在闪屏出现之前有两件事需要做:1、序列化Resources文件夹内的资源结构树;2、预加载/编译一些指定的Shader,如GraphicsSettings-Preloaded Shaders中设置的元素。在这两件事期间屏幕将出现黑屏,体验毫无疑问相当差。而需要等待黑屏的时间就因工程而异了。如果你的工程不需要在这两件事上花时间,后面的内容请忽略。
优化的策略是废弃Unity自带的闪屏,在启动时自己显示一个闪屏图片(android层去做),并在进入游戏后......
参考http://www.bkjia.com/Androidjc/888284.html
不过不用那么麻烦,只需在发布好的XCode工程中,修改Classes\UI\SplashScreen.mm文件...
环境:越狱IOS设备,支持https的web服务器,包含应用信息的plist文件
原理:使用Safari独有的协议,如(itms-services://?action=download-manifest&url=http://192.168.0.39/publish/whatsappinfo.plist)
备注:
1、如果web服务器是自签名证书,必须在IOS设备安装这个证书。将这个证书通过邮件呀,或是网页呀什么方式让手机安装这个证书,然后再去装APP就可了。另外可以使用DropBox之类的代替自己建立服务器,这样就不需要在IOS设备上安装对应证书了。
2、plist文件可以在附件里下载来修改也行。
使用WWW.LoadFromCacheOrDownload方法加载文件时,其进度(www.progress)在IOS(iPhone/iPad)上只有0和1两个值,不会(0.1,0.2,0.3……)这样平滑的过渡,但在PC和Android上能正常。
解决方法是:1、按照下面设置好HTTP头,2、将要下载的文件后缀设置好mime类型(application/octet-stream )
参照:http://answers.unity3d.com/questions/594668/wwwprogress-not-working-on-android-ios-1.html
Typically you see this behaviour when the server is returning bad header information. If it's not returning a content length, Unity has no way of giving you progress, since progress is a percentage of the total content length.
Server code :
$attachment_location = 'files/myAssetBundle.unity3d';
header($_SERVER["SERVER_PROTOCOL"] . " 200 OK");
header("Cache-Control: public");
header("Content-Type: application/zip");
header("Content-Transfer-Encoding: Binary");
header("Content-Length:".filesize($attachment_location));
header("Content-Disposition: attachment; filename=myAssetBundle.unity3d");
readfile($attachment_location);
Die();