ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

unity中的常遇到的问题

2019-05-29 23:38:53  阅读:445  来源: 互联网

标签:遇到 物体 碰撞 问题 unity 实例 坐标 预制 pivot


1.使用unity的MovieTexture播放视频在物体上,对象只能在电脑上

2.移动端播放全屏视频 Handheld.PlayFullScreenMovie(),视频文件必须放置在StreamingAssets文件夹下

3.Unity的其他特殊文件夹??

4.Unity实例化物体(destObject,position,rotation,parent)和(destObject,position,rotation),前者会先让预制物体实例化为parent的子物体,并且使其scale值乘以父物体的scale值,再调整其位置,这样得出的结果事宜相对坐标,往往会发生预料之外。后一种为直接实例化,没有父子依赖关系,也不调整其scale值,可以后面添加父子关系,这样的结果更好。一般情况下,最好將预制物体的坐标设为(0,0,0)。

5.使用 transform.parent.TransformPoint(transform.localPosition)来进行坐标转换,不管有几层父子关系,都以其最高层来转化。

6.今天弄了一天还是没解决一个问题:
我要在下图模型如图选中的小圆球的position位置实例化一个饼状的物体并设置该物体为小球的子物体,小球为该模型的骨骼的子物体,饼状预制物体的坐标为(0,0,0),脚本是依附在小球上的

代码如下

实例化后的结构如下(此处我把视图放到模型里面可以看到饼状物体)

为什么我的预制物体无法实例化到小圆球的坐标位置,求解求解求解,有人遇到过此问题求解,我快崩溃了

 


 利用一个capsule作为小球的子物体来代替该小球就可以让物体实例化在capsule的位置,这说明模型自带的子物体的位置真的不能作为一个预制物体的位置参考,否则会出错,最有效的方式是建立一个unity物体,然后调整位置,并为该物体的子物体,让unity物体代替该物体的定位功能。

 

7.上面主要出现的问题的原因是,物体实例化子物体参考的是自身的pivot坐标,center坐标是以colider组件来定义的坐标,物体的移动,转向,世界坐标,子物体实例化位置,都是以pivot来做参考的,pivot是物体网格渲染的真实坐标。并且如果物体没有父物体,那么检视面板显示的是pivot世界坐标,如果有父物体,那么显示的是相对坐标,在脚本里相对坐标可以用localposition获得。

 

8.修改某些物体的pivot坐标的方法,由于pivot是在建模的时候固定的,所以无法真实修改,但是可以让此物体成为某个空物体的子物体,让后调节它们的相对位置,最后让这个空物体代替原来的物体。但是对于某些动画模型来说最好不要这样做,最好是用其他模型工具实际修改。

 

9.Destroy函数会在一帧的结尾执行。

7.MonoBehaviour类中的鼠标事件如OnMouseDown只对空间中的物体有效,对UGUI无效,对UGUI需要新的事件系统接口新的:EvenSystem。

 

8.对于拖拽事件,OnPointerDown不能代替OnBeginDrag,OnPointerClick不能代替OnEndDrag。否则会发生无法复位的Bug。

 

9.模型的Animation下的Curves可以添加参数曲线,若要使用此参数,可在animator组件中添加和此参数同名的参数,但是参数值以animation下的值为准。

 

10.脚本组件下面有start()函数或者update函数时,在检视面板中才有勾选框。

7.预制物体的脚本GameObject成员变量的值只能是预制物体对象,不能引用场景中的对象。

 

8.网格碰撞器的面数必须小于256面。

 

9.如果物体A与物体B发生碰撞,C是物体A的子物体,并且物体C没有Rigidbody组件,A和B都有Rigidbody组件,并且碰撞点在C,那么发生碰撞的是A与B的Rigidbody。但是如果C有Rigidbody组件,那么发生碰撞的就是C与B。也就是说碰撞的是两个逻辑上最近的Rigidbody。

 

10.mesh filter定义了物体的形状,mesh render定义了物体的渲染显示。

 

11.拖拽精灵子图到空物体创建精灵动画时有可能没有弹出动画创建窗口,这可能是软件反应延迟,可删除刚创建的没用的子物体,再次拖拽。

 

7.Animator Controller 与 Animator override Controller的关系类似于父类虚函数与子类重写函数的关系,可以为两个形状不同,但是动画转换条件相同的,只是动画不同的物体其中一个添加Animator override Controller,然后重用上一个的Animator Controller,然后替换相应的动画即可,当此类物体的数量很多时,用这种方式可以节省时间。

8.layer主要通过光线投射来选择性地忽略碰撞器,或者添加碰撞功能。而sorting layer就是一个渲染层级的顺序的控制。
9.[Serializable]可以使其定义的变量在inspector面板下显示。[HideInspector]用在public变量前面表示即使是公共变量,也不会在Inspector中显示。
10.Animator中Trigger类型的参数,设置其值之后立即就会自动恢复原来的值,用于设置某些攻击技能状态很有效。

标签:遇到,物体,碰撞,问题,unity,实例,坐标,预制,pivot
来源: https://www.cnblogs.com/xiaoahui/p/10947086.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有