zoukankan      html  css  js  c++  java
  • UI坐标变换/转换

    InverseTransformPoint

    Transform.InverseTransformPoint :相对于谁的坐标。如果是相对2D UI,请使用localposition,如果是3D场景,请使用position

    文档

    http://www.ceeger.com/Script/Transform/Transform.InverseTransformPoint.html

    UI结构

    imageimage

    UIRoot/PanelRoot/Center/Battle/BuffsOnHero/BuffIconTemplate  (这是buff图标)

    UIRoot/PanelRoot/Center/Battle/BuffDetail  (这是buff详细信息窗口)

    UI坐标变换需求

    BuffDetail的坐标和BuffIconTemplate顶对齐,就是按住不同的图标,弹出窗口的Y和图标的Y相同。

    image

    思路分析

    BuffDetail  和BuffIconTemplate  的父节点,同级(这一点很重要)

    1、获得BuffIconTemplate的UI坐标的Y设置成BuffDetail的Y

    涉及到UI坐标的转换。

    实现方法

    //获取图标相对于父节点的UI坐标
    var
    localPos = transform.InverseTransformPoint(BuffIconTemplate.transform.position); //窗体和Buff图标的坐标顶对齐,和buffTable的右侧有一个offset var offX = localPos.x - BuffWinBg.width * 0.5f - 70;
    BuffDetailWindow.localPosition = new Vector3(offX, localPos.y, localPos.z);

    解释:Transform.InverseTransformPoint 相当于把buffIconTemplate从父节点拉出来,获取它在UI上的localposition,如下图所示

    image

    附加资料

    UICamera下的gameobject 使用localpostion

    SceneCamera下的gameobject 使用wordpostion

  • 相关阅读:
    程序员新年要实现的10个愿望
    编写超级可读代码的15个最佳实践
    LeetCode 最大子序和
    LeetCode 最大正方形
    LeetCode 买卖股票的最佳时机 II
    LeetCode 买卖股票的最佳时机
    B树和B+树
    SQL的几种连接
    LeetCode 无重复字符的最长子串
    LeetCode 翻转字符串里的单词
  • 原文地址:https://www.cnblogs.com/zhaoqingqing/p/4167187.html
Copyright © 2011-2022 走看看