2015-06-27 12:13:36 cp790621656 阅读数 9198

想用Unity来做一些动画,用到Pivot来调整中点作为旋转点。但是回到家发现,Pivot那个蓝色小圈圈怎么都拖不动。
蓝色圈圈拖不动

也不知道是怎么回事,就放着放了两天,今天到Google搜索到相关问题

http://forum.unity3d.com/threads/pivot-blue-circle-does-not-move.272698/

原因是Unity Editor中可以设置是 Pivot模式 或者 Center 模式
切换Pivot和Center

2019-08-29 09:55:28 gcc___ 阅读数 56

PS:干,Unity3D吧吧主在劝新人转行,吓得我赶紧学点东西。

Unity小技巧之: 快速搭建场景快捷键(开发者投稿)
原视频:https://www.bilibili.com/video/av39714384

整理一下视频中的信息

工具类快捷键:
Q:视角 W:移动 E:旋转 R:缩放 T:矩形变换 Y:wer混合
模式
Center/Pivot:中心/轴心 根据物体一个/多个 点来操作 Local/Global:自身/世界 坐标切换
便捷功能
Snap settings:按住Ctrl,使用wer功能会有一个 单位效果(单位贴齐)

表面贴合:按住Ctrl和Shift,移动物体时会倒贴临近碰撞器(注意模式
什么旋转:按住Ctrl和Shift,旋转物体时会自朝鼠标指示碰撞器(要先按自身)
顶点贴合:使用移动工具时按住V,Shift+v开关常驻(pivot模式下还能以顶点缩放,旋转)

2018-08-31 12:26:54 weixin_41232641 阅读数 591

模型旋转实现开门效果

  • 模型中心点
    • 模型身上坐标轴的中心点,即为模型的中心点。
    • 模型的位置、旋转、缩放都是相对于模型的中心点来进行变化的。
  • 改变模型中心点
    • 创建一个空物体,创建父子关系,通过父物体控制子物体,也就间接改变了模型的中心点。
  • 中心点工具
    • Center:当选中两个模型,设置为 “Center”,模型组的中心点就在两个模型的中间中心位置。
    • Pivot:当选中两个模型,设置为 “Pivot”,模型组的中心点就在后选中的模型的中心点位置

  • 使用键盘按键实现开关门
    • 使用 Transform.Rotate(Vector3, float) 旋转模型。
      • Vector3:沿某个轴向旋转。
      • Float:旋转的度数。
        private Transform m_Transform;
        
        void Start()
        {
           m_Transform = gameObject.GetComponent<Transform>();
        }
        
        void Update()
        {
           if(Input.GetKeyDown(KeyCode.Z))
           {
              OpenDoor();
           }
        
           if(Input.GetKeyUp(KeyCode.Z))
           {
              CloseDoor();
           }
        }
        
        void OpenDoor()
        {
           m_Transform.Rotate(Vector3.up, 90);
        }
        
        void CloseDoor()
        {
           m_Transform.Rotate(Vector3.up, -90);
        }
        

         

触发器实现开关门

  • 添加触发器
    • 创建一个空物体,添加 “Box Collider” 组件,设置大小和中心点。
    • 勾选 “Is Trigger” 变成触发器。
  • 代码实现触发器开关门
    • OnTriggerEnter()
    • OnTriggerExit()
  • 查找游戏物体
    • GameObject.Find(string):[静态方法]  通过名字查找游戏物体
    • String:游戏物体的名字。
      private Door m_Door;
      
      void Start()
      {
         m_Door = GameObject.Find("DoorParent").GetComponent<Door>();
      }
      
      void OnTriggerEnter(Collider coll)
      {
         if(coll.gameObject.name == "Student")
         {
            m_Door.OpenDoor();
         }
      }
      
      void OnTriggerExit(Collider coll)
      {
         if(coll.gameObject.name == "Student")
         {
            m_Door.CloseDoor();
         }
      }

       

 

2015-03-26 07:22:08 fang_tang_ 阅读数 521
  1.  Rigidbody组件中的Mass的单位:kg                      
  2.  世界坐标系是左手坐标系
  3.  Local 和 Global :前者是选中的游戏对象显示自身坐标轴,后者是显示世界坐标轴
  4.  Center 和 Pivot :前者是各自轴心,后者是选中多个物体时共同的轴心
  5.  trasform组件中的rotation,每次旋转都是相对自身坐标轴来旋转,所以每次旋转都和上一次的旋转有关。(可以根据local来看)。rotation 的数值为正:从正轴往负轴看,顺时针转;同理负为逆时针。  ,    
  6.  Transform 类,transform 是Transform类中的变量,指transform组件。 
  7.  transform组件的rotation以 度 为单位 
  8.  若物体是子物体,则其属性视图中的rotation是相对于父物体的。【总之,是相对于上一级的】
  9.  子物体概念只延伸至一层。eg1: t父/t子/t孙 。。。则t父只有一个子物体,t孙是t子的子物体和t父无关。 eg2:t父/t子、t孙。。。则t父有两个子物体。
  10.  查看脚本挂在哪些物体上?      答: 右击脚本Find reference in scene。不管物体在属性视图中是否选中,都会在Scene视图和Hierarchy视图显示。
  11.  对于Scale,若A物体成为B物体的子物体,则成为子物体后的A的Scale分量值是之前A的值 除以 其父物体的  值。【成为子物体,则子物体除以父物体。。。拿出去,则子物体乘以父物体(lossyScale就是如此,该变量  指的是物体在世界坐标中的实际尺寸)】
 
 

2018-09-08 18:40:32 qq_33337811 阅读数 739

参考链接:
https://docs.unity3d.com/2017.4/Documentation/Manual/UIBasicLayout.html

UGUI Basic Layout

1.Pivot轴心

旋转、大小和缩放修改发生在主轴Pivot点周围,因此Pivot的位置会影响旋转、调整大小或缩放的结果。当工具栏Pivot/Center按钮设置为Pivot模式时,可以在场景视图中移动矩形变换的Pivot小圆圈。

如图:旋转操作为绕着这个点旋转.

红圈位置为Pivot位置(0,0)(圆圈为pivot,四个三角为锚点)
红圈位置为Pivot位置(0.5,0.5)

Pivot是相对于自身的,(0,0)为自己左下角,(1,1)为自己右上角。(可以把这个UI看成这个点)

2.Anchors锚点

如果一个RectTransform的父物体也是RectTransform,那么子RectTransform可以以各种方式锚定到父RectTransform。

例如,子节点可以锚定在父节点的中心或其中一个角上。

UI element anchored to the center of the parent. The element maintains a fixed offset to the center.

锚定也允许孩子与父母的宽度或高度一起伸展。矩形的每个角都有一个固定的锚点偏移量,即矩形的左上角有一个固定的锚点偏移量,等等。这样,矩形的不同角就可以固定在父矩形的不同点上。

如:
UI element with left corners anchored to lower left corner of the parent and right corners anchored to lower right. The corners of the element maintains fixed offsets to their respective anchors.

  • 锚点的位置以父矩形宽度和高度的分数(或百分比)来定义。

  • 0.0(0%)对应于左侧或底部,0.5(50%)对应于中部,1.0(100%)对应于右侧或顶部。
    但锚点并不局限于两侧和中部;它们可以锚定到父矩形中的任何点上。

  • Min(X,Y)为左下角的点在父物体上的位置,Max(X,Y)为右上角点在父物体上的位置。

  • 您可以分别拖动每个锚,或者如果它们在一起,您可以通过单击它们之间中间的位置并拖动将它们拖到一起。如果在拖动锚点时按住Shift键,矩形的相应角将与锚点一起移动。

  • 锚柄的一个有用的特性是,它们会自动吸附到兄弟矩形的锚上,以实现精确定位。

3.Anchor presets锚点预设

在Inspector中,可以在Rect Transform组件的左上角找到锚预置按钮。单击该按钮将弹出锚预置下拉菜单。从这里您可以快速地从一些最常见的锚定选项中进行选择。您可以将UI元素锚定到父元素的侧面或中间,或者与父元素大小一起拉伸。水平和垂直锚定是独立的。

  • 锚预置按钮显示当前选择的预置选项(如果有的话)。如果将水平轴或垂直轴上的锚设置为与任何预设位置不同的位置,则会显示自定义选项。

  • Anchor Min对应场景视图中左下方的Anchor handle, Anchor Max对应右上方的handle。

  • 矩形的position字段根据锚顶点是否在一起(产生固定的宽度和高度)或是否分开(导致矩形与父矩形一起拉伸)而不同。

  • 方式1:当所有的锚柄在一起时,显示的字段是Pos X、Pos Y、宽度和高度。Pos X和Pos Y的值表示pivot相对于锚点的位置。

  • 方式2:当锚被分开时,字段可以部分或完全改变为左、右、上、下。这些字段定义锚定义的矩形内的填充。如果锚水平分开,则使用左字段和右字段,如果锚垂直分开,则使用顶部和底部字段。

  • 注意,在anchor或pivot字段中更改值通常会反向调整position值,以使矩形保持原位。在不需要这样做的情况下,通过单击检查器中的R按钮启用原始编辑模式。这使得anchor和pivot值能够在不改变任何其他值的情况下被改变。这可能会导致矩形在视觉上移动或调整大小,因为它的位置和大小取决于anchor和pivot值。

  • 看下图预设布局,可以注意到:布局分为左侧、上侧和右下。

  • 左和上只是方位标记,用啥要选择右下角部分;
  • 右下部分的左上9个是一个点,所有锚柄在一起,大小不会受父物体影响,父物体大小变化子物体pivot到锚点位置保持不变; 如上面方式1
  • 其他为2个点,最右下角的为四个点,大小会受父物体影响;如上面方式2

注意区分:

  • Pivot是相对于自身的,(0,0)为自己左下角,(1,1)为自己右上角。(可以把这个UI看成这个点)
  • Anchor为相对于父物体的,(0,0)为父物体左下角,(1,1)为父物体右上角。

4.Blue Print Mode(蓝图模式) 、 Raw Edit Mode(原始编辑模式)

参考链接:https://mp.weixin.qq.com/s/2VZBlS5K5H-Y-RwKOZCJdQ
http://tsubakit1.hateblo.jp/entry/2014/12/19/033946#BluePrint-Mode%E3%81%A8Raw-Edit-Mode

  • Blue Print Mode (蓝图模式)

    勾选后,就算UI被调整Rotation或Scale参数,UI的矩形框也不变。

  • Raw Edit Mode (原始编辑模式)

    在 Inspector 中调整 Pivot 和 Anchor 时,物体会维持目前的位置与大小(Inspector 中数值部分),请注意数值部分:

    Inspector 中调整 Pivot:

    Inspector 中调整 Anchor:

5.从脚本端操作布局

从脚本端操作uGUI时,编辑符号和RectTransform字段不匹配有点复杂。没有诸如Pos X之类的参数,并且宽度/高度也不存在。

在这种情况下,将Inspector更改为Debug模式并公开RectTransform的隐藏参数。通过这个我们可以看到参数通常指向的内容。

unity3d quaterion

阅读数 1597

没有更多推荐了,返回首页