1、在UGUI中的物体顺时针旋转Z是负的。(和正常3D中是相反的)

在UGUI中,把视角切换为3D,聚焦Camera。



在右上角点击Z正方向,会发现界面是向着UI的反方向,表示Camera是从里面看UI的,正好和3D中相反的。

2、MoveTowards()+Vector3.Distance()控制物体的移动

MoveTowards(current: Vector3, target: Vector3, maxDistanceDelta: float): Vector3;

这个函数的返回值是一个点,以maxdistancedelta为单位速度沿着当前的和目标之间的线接近目标点。移动不会超过目标。maxdistancedelta为负值时,可以用来从目标推开该向量。

把此值赋值给物体位置,就可以实现移动

Distance(Vector3 a, Vector3 b);

返回两个位置间的距离。

当物体到达目标点时,执行一些操作。

3、trtransform.SetParent();的第二个参数坑

在UGUI中,生成新物体时,如果让他的parent为UGUI中的物体,需要把第二个参数设置为false。

当我们向UGUI中托一个子弹物体时,会正常显示其大小。



而当我们拖这个物体放在最外层时,会发现他显示的非常大(因为UGUI和里面物体是相对于世界缩放的,会非常小)。





然后继续我们把最外层这个物体拖入UGUI中,会发现他的Transform值改变了,但是大小没有变。(这就相当于执行一次setparent,并且第二个参数为true)。

总结:当我们Instantiate一个物体时,会默认放在最外一层。如果我们让他放入UGUI中,肯定要的是会自动缩放的效果。

这时我们把第二个参数设置为false,保留其transform值,把这种位置关系带到UI父物体中,就会正常显示了。

另外注意当想把复制的物体parent设置为UGUI的物体,不能在复制时设置位置,要设置parent后再设置位置。

GameObject web = Instantiate(webPrefab);
web.transform.SetParent(gameObject.transform.parent, false);
web.transform.position = gameObject.transform.position;

Unity---遇到的一些坑和解决方案的更多相关文章

  1. Unity编辑器 - Undo的坑

    Unity编辑器 - Undo的坑 编辑器通过脚本中改变值,Undo.RecordObject可能会无效,应该使用: Undo.RegisterCompleteObjectUndo(Object ob ...

  2. 安装CentOS 7.4 可能会出现的坑以及解决方案

    安装CentOS 7.4 可能会出现的坑以及解决方案 (解决方法不唯一,如果行不通的话emmmm~~, 百度会啥你会啥~~) 坑.0X01 解决: 退出虚拟机,以管理员权限运行 坑.0X02 解决: ...

  3. Unity Android交互过坑指南

    Unity Android交互过坑指南 介于网上看过很多unity和Android交互的教程,都或多或少的漏掉了一些部分,导致编译过程中出现各种问题,特此整理一份教程,仅供参考 介绍 本次实现的是在游 ...

  4. 使用appium过程中常遇到的坑以及解决方案

    立志踩遍所有的坑...以下是学appium遇到的坑以及解决方案,方便自己的同时,也方便他人. 一.cmd输入:aapt dump badging C:\Users\XX\Desktop\xxx.apk ...

  5. Appium学习实践(五)遇到的坑(记录自己工作中遇到的坑以及解决方案,不定时更新)

    1.错误截图,有时候测试用例执行错误的话,相对于复杂的log,一张错误截图也许能更明确哪里出的问题(当然有时,截图+log还是最好了) 坑:本来是想测试用例fail的时候捕获异常来执行截图操作,但是由 ...

  6. 曾经的pc端项目踩到的一些兼容性的坑及其解决方案

    曾经公司pc端项目一直最低兼容到IE7,要求和chrome下浏览效果一致,真心坑坏了我和另外一个小伙伴(另一个小伙伴以前也没处理过兼容问题).不过还好,在这里真心感谢鑫哥博客的详解,从底层原理讲到了具 ...

  7. Ubuntu16.04安装NVIDIA驱动时的一些坑与解决方案

    这几天在新购置的笔记本上部署工作环境,在安装NVIDIA驱动的时候遇到了不少坑,重装了很多次,在Ubuntu论坛以及其他资料源看了很多大牛的分析,最终终于解决了一个又一个问题,过程比较艰辛,所以决定写 ...

  8. Unity协程的坑

    unity终止协程提供了  StopAllCoroutines() 和 StopCoroutines() 两个方法, 但是都只能终止该文件内的 IEnumerator. 并且具体使用有点坑, 见如下实 ...

  9. 新建VS工程与填坑:解决方案与项目不在同一目录

    A.新建项目->空工程 B.添加依赖库 1.属性->C/C++->附加包含目录 注:添加头文件目录,必须指向子文件夹 2.属性->链接器->常规->附加库目录 注: ...

  10. webpack1.x环境配置与打包基础【附带各种 "坑" 与解决方案!持续更新中...】

    首先介绍传统模块化开发的主流方案: 1.基与CMD的sea.js,玉伯提出的解决方案,据说原来京东团队在使用.用时才定义,就近加载. 2.基于AMD的require.js,之前在用.提前声明与定义.国 ...

随机推荐

  1. Mysql异常_01_ 誓死登进mysql_Can't connect to MySQL server on 'localhost' (10061)

    现象:打开cmd,输入命令:mysql -uroot -p 回车之后,输入密码,结果进不去mysql,并且抛出异常 异常:Can't connect to MySQL server on 'local ...

  2. codeforces 652A A. Gabriel and Caterpillar(水题)

    题目链接: A. Gabriel and Caterpillar time limit per test 1 second memory limit per test 256 megabytes in ...

  3. STL stl_uninitialized.h

    stl_uninitialized.h // Filename: stl_uninitialized.h // Comment By: 凝霜 // E-mail: mdl2009@vip.qq.com ...

  4. 浅谈java中replace()和replaceAll()的区别

    replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是: 1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharS ...

  5. ACM学习历程—BZOJ2956 模积和(数论)

    Description 求∑∑((n mod i)*(m mod j))其中1<=i<=n,1<=j<=m,i≠j. Input 第一行两个数n,m. Output 一个整数表 ...

  6. C# Hashtable赋值给另一个Hashtable时

    c#中想将一个hashtable的元素全部给另一个hashbale时, 使用迭代一个一个元素赋值 如: ammus.Clear(); IDictionaryEnumerator ie = _temp. ...

  7. #include <deque>

    deque \(deque\)头文件主要包括一个双端队列容器.是一个支持在两端插入两端删除的线性储存空间,与vector和queue相似.与\(vector\)比起来,\(deque\)可以在\(O( ...

  8. POJ 1046 Color Me Less(浅水)

    一.Description A color reduction is a mapping from a set of discrete colors to a smaller one. The sol ...

  9. HDOJ1548(DFS超内存,BFS过了)

    DFS代码 #include<iostream> #include<cstdio> using namespace std; #define Min(a,b) (a<b) ...

  10. BarTender SDK 实现调用模板条码打印

    Demo:MyZebraPrint 基于BatTender .Net SDK 实现调用模板进行条码打印 有需要的朋友可以拿去研究下 在已经安装了BatTender10.1的电脑里测试通过. 下载地址: ...