从来没有做过一个完整的游戏,所以用UGUI来做个手游界的 " Hello World " - 微信打飞机。看起来easy做起来也碰到各种奇异的问题。

昨天导出安卓包之后,在我的MX2上安装。測试发现 子弹碰到 敌机 毫无反应。敌机碰到我的飞机毫无反应。由于设计时的屏幕尺寸是640x940,而MX2是800x1280。

第一反应是屏幕分辨率问题。

转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

于是在电脑上更改分辨率測试,把640x960 改动为 800x1280 ,重现了手机上的问题。

例如以下过程。

转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

有两个 Image 在 界面中,是 设计时的分辨率 640x960 。

细心的朋友 在图中就能发现问题,红色Image PosZ为什么是1,不应该是 0 吗?

对的,因为粗心大意。在代码中 原本是设置 localScale为1的代码 却写成了 设置 localPosition 为1的无用代码。同一时候也导致了这次的错误。

转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

另外一个蓝色 Image的设置

PosZ为0。

按理说这两张图片不在同一 Z轴,不会相交,不会产生碰撞。

可是

由于蓝色、红色 Image 上的 BoxCollider 设置的 Z 大小都是1。所以 两个碰撞体 正好可以碰到,从而产生碰撞。

当更换了分辨率之后发生了什么?

转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

首先我们让代码 Clone 出来一个 红色 Image,由于在代码中没有设置 localScale 为 1,所以随着分辨率变化,localScale 变成了 0.9。这样,红色Image 上面的 BoxCollider也因此 Z轴的大小变为了原来的 0.9 。

所以,两个BoxCollider 由于不在同一Z轴,红色的在1,蓝色的在0,并且两个BoxCollider的 Z 轴范围 1/2+0.9/2 不足以达到 两个BoxCollider的Z轴距离,没有相交,所以不能产生碰撞。

转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

一切都是下面一段代码造成:

using UnityEngine;
using System.Collections;public class clonetest : MonoBehaviour {public Transform imgObj;// Use this for initializationvoid Start () {GameObject clone = Instantiate (imgObj.gameObject) as GameObject;clone.transform.SetParent (imgObj.parent);clone.SetActive (true);clone.transform.localPosition = Vector3.one; //本来应该设置localScale的代码写成了设置localPosition;clone.transform.localRotation = Quaternion.identity;//对位置进行了其他设置;clone.transform.SetlocalPositionX (-0.25f);clone.transform.SetlocalPositionY (0f);}// Update is called once per framevoid Update () {}
}

演示样例下载:

http://pan.baidu.com/s/1dDyEZNr

转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

转载于:https://www.cnblogs.com/gccbuaa/p/6708986.html

UGUI 屏幕适配 导致 BoxCollider无效 解决记录相关推荐

  1. vue移动端html5页面根据屏幕适配的四种解决方法

    最近做了两个关于h5页面对接公众号的项目,不得不提打开微信浏览器内置地图导航的功能确实有点恶心.下次想起来了的话,进行总结分享一下如何处理.在vue移动端h5页面当中,其中适配是经常会遇到的问题,这块 ...

  2. Unity中的UGUI屏幕适配

    本文分享Unity中的UGUI屏幕适配 屏幕适配一直是一个老生常谈的问题, 虽然只是项目一开始的时候会用到, 但是还是有很多东西需要学习和了解, 今天给大家分享下一些个人的学习和总结. 各种坐标 屏幕 ...

  3. nginx负载均衡配置无效解决记录

    1.查看是否进行跨域配置 upstream redislock{         server 192.168.3.197:8001;         server 192.168.3.197:800 ...

  4. Android 屏幕适配终结者

    本文作者: 布兰柯基 本文链接: https://blankj.com/2018/12/18/android-adapt-screen-killer/ 文末有彩蛋 背景 之前基于头条的适配方案写了篇文 ...

  5. Android屏幕适配前先了解这些

    前言:之前很火的屏幕适配方案不知道大家都去尝试过写进项目中没,应该有一部分人在隔岸观火,大概的原因就是目前并没有遇到能把项目重构的适配问题,另一方面就是有的适配方案还没有很成熟的应用,都不想拿自己的项 ...

  6. 有效解决3D游戏边缘锯齿现象及全面理解LayaAir引擎游戏屏幕适配!

    有的时候看到一些3D游戏锯齿感特别明显,与一些开发者沟通后发现,其实很多人并不清楚怎么能去掉明显的锯齿感,而这并不是只有新开发者才遇到的问题,很多游戏研发经验丰富的开发者,甚至是使用LayaAir引擎 ...

  7. ubuntu (20.04 LTS) 屏幕亮度调节无效解决方法

    ubuntu屏幕亮度调节无效解决方法 问题描述 尝试过的解决方法 解决方法发现历程 解决方法 总结 问题描述   因为学习需要,在Win10系统的基础上安装了Ubuntu20.04 LTS 双系统,但 ...

  8. android屏幕适配无效_Android屏幕适配出现的原因

    在我们学习如何进行屏幕适配之前,我们需要先了解下为什么Android需要进行屏幕适配. 由于Android系统的开放性,任何用户.开发者.OEM厂商.运营商都可以对Android进行定制,修改成他们想 ...

  9. android碎片化的解决方法,解决 Android 设备碎片化--屏幕适配

    随着支持 Android 系统的设备(手机.平板.电视.手表)的增多,设备碎片化.品牌碎片化.系统碎片化.传感器碎片化和屏幕碎片化的程度也在不断地加深. 在当时初学 Android 的时候,就初步接触 ...

最新文章

  1. 联邦学习--数据攻击(2)
  2. android 代码添加图片不显示,Android开发 从代码里设置Drawable图片不显示的问题
  3. 机器视觉用c还是python_机器视觉_opencv-python环境搭建
  4. 数据结构与算法之--高级排序:shell排序和快速排序
  5. sql server 关联_SQL Server中的关联规则挖掘
  6. Postgres 数据库字符集更改 ERROR: new encoding (UTF8) is incompatible
  7. CCCC-GPLT L2-020. 功夫传人 团体程序设计天梯赛
  8. html标签之间去掉空白,html – 减少两个标签之间的空白差距
  9. ubuntu下oracle数据的导入,Ubuntu下Oracle10g的导入与导出
  10. 转Win 7 快捷键
  11. 51nod1005大数加法(C语言实现大数)
  12. crackme003
  13. 二元函数连续性、可导性及极限
  14. SpringCloud入门简介
  15. 计算机应用个人职业发展规划简短,个人职业生涯规划
  16. r730 raid5 linux 驱动,Dell power edge R730 raid卡安装配置
  17. 【SpringBoot项目中使用Mybatis批量插入百万条数据】
  18. BooT模式: Flash、ISP、SRAM
  19. 人工智能的核心技术是什么?
  20. 用jQuery添加dragstart,dragover和drop事件,实现拖拽效果

热门文章

  1. 如何确定自己是否适合做程序员?
  2. ​给前端开发者的 14 个 JavaScript 代码优化建议
  3. 【干货】写给初中级前端的高级进阶指南
  4. pandas groupby count_数据分析14-利用pandas进行数据分组
  5. QT保留小数点后几位
  6. druid监控页面_Spring boot学习(四)Spring boot整合Druid
  7. python每行输出8个式子_多图+代码 | 详解Python操作Excel神器openpyxl的各种操作!
  8. C语言学习笔记---位字段
  9. FPGA学习笔记---Verilog HDL 可综合语句和不可综合语句汇总
  10. 将Tomcat集成到IDEA