• 涨知识!文字里的秘密 最全甲骨文书展来了 2019-09-13
  • 晋中市着力将“厕所革命”进行到底 2019-09-05
  • 供应链如何更“智慧” 2019-09-05
  • 红枣食疗效果好 6种吃法最滋补-美食资讯 2019-09-01
  • 党的十九大最重大的理论成就 2019-08-28
  • 余世存:阅读经典不仅是消费,也是责任 2019-08-20
  • 实干树形象 实绩惠民生——“两学一做”特别关注 2019-08-20
  • 曲速引擎:曾被寄予厚望 现遭“一瓢冷水” 2019-08-18
  • 毛泽东说帝国主义都是纸老虎。是有社会基础的 2019-08-07
  • 外国人就医计划示范医院授牌 天津医院泰达医院获认定 2019-07-21
  • 文体 —频道 春城壹网 七彩云南 一网天下 2019-07-18
  • 【理上网来喜迎十九大】苏格:习近平总书记外交思想领航中国特色大国外交 2019-07-18
  • 8种家居环境很败“性” 2019-06-28
  • 2018年全军院校招生计划下达:计划招收学员3.05万名 2019-06-15
  • 晋城市举办干部素质提升工程第十八期专题讲座 2019-06-15
  • 今天南粤风采36选7投注: 码农亚 VR填坑之——UIClip(小议)

    29
    回复
    4342
    查看
    打印 上一主题 下一主题
    [ 复制链接 ]
    排名
    2714
    昨日变化

    福建36选7和值走势图 www.00-na.com 13

    主题

    135

    帖子

    1234

    积分

    Rank: 9Rank: 9Rank: 9

    UID
    251813
    好友
    5
    蛮牛币
    2106
    威望
    0
    注册时间
    2017-10-31
    在线时间
    530 小时
    最后登录
    2019-9-7

    专栏作家活力之星

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

    您需要 登录 才可以下载或查看,没有帐号?注册帐号

    x
    本帖最后由 码农亚 于 2018-12-10 15:32 编辑

    1.最近因为某些原因,跳到了另外一家公司,当前的环境基本上就是主要开始进行虚拟项目桌面软件(exe)的基本创建。
    2.显示模式有两种:普通PC版以及VR版本(包括但不限于HTC Vive),以下简称PC以及VR
    3.当然,两种项目之间的切换是必然要做的,不过此处并非是要进行所谓切换模式方法的管理。而是缩小一些,探讨小坑。
    4.PC模式下,UI是2维的,而相关的UIClip在Camera的管理下,基本的逻辑是被裁剪而无法看到的???,相关方法不被激活。
       然而,VR模式下,UI是三维的,并且需要添加BoxCollider???。
       相关的VRCamera??榈鼻安⑽慈缤琍C端一般.(被裁剪无法看到,但是本身是Active状态的话,射线依旧会检测,依旧有检测事件).
    5.所以,就需要对相关的方法进行调整
       调整的方法有很多,我这里写出来我自己的一种简略尝试:
       假设有10个物体,当前只会显示的其中3个
       初始:123激活,其它不激活
       按下右键:234激活,其它不激活
       再按下右键:345激活,其它不激活
       按下左键会有相应的当前激活位置向左移动一个位置
       当然,关于坐标变化以及边缘限定是要考虑的方面之一截图:






    [C#] 纯文本查看 复制代码
    using DG.Tweening;
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    //裁剪基本变化,消除左右不一致的相关Bug
    public class UIClipManager : MonoBehaviour {
    
        public List<GameObject> allObjs;
        public GameObject _father;
        public float _fatherXvalue = -564f;
        public float _identityValue = 160f;
        public float _moveValue = 0.5f;
        int dex = 1;
        void Start()
        {//012
         //123
         //234
         //前三个显示
            TheStartSee();
        }
        // Update is called once per frame
        void Update()
        {
            //if (Input.GetKeyDown(KeyCode.R))
            //{
            //    if (dex + 2 < allObjs.Count)
            //    {
            //        RightMove(dex + 1);
            //        TheMainRightManager(dex + 1);
            //    }
    
            //}
            //if (Input.GetKeyDown(KeyCode.L))
            //{
            //    if (dex - 2 > -1)
            //    {
            //        LeftMove();
            //        TheMainLeftManager(dex - 1);
            //    }
            //}
        }
        void TheRightSee(int _value)
        {
            dex += 1;
    
        }
       
        void TheStartSee()
        {
            int startNum = 1;
            for (int i = 0; i < allObjs.Count; i++)
            {
                if (i == startNum - 1 || i == startNum || i == startNum + 1)
                {
                    allObjs[i].SetActive(true);
                }
            }
        }
        public void FinalRight()
        {
            if (dex + 2 < allObjs.Count)
            {
                RightMove(dex + 1);
                TheMainRightManager(dex + 1);
            }
        }
        public void FinalLeft()
        {
            if (dex - 2 > -1)
            {
                LeftMove();
                TheMainLeftManager(dex - 1);
            }
        }
        public void TheMainRightManager(int _startValue)
        {
            //dex+=1;
            Debug.Log("基础标志" + _startValue);
            for (int i = 0; i < allObjs.Count; i++)
            {
                if (i == _startValue - 1 || i == _startValue || i == _startValue + 1)
                {
                    allObjs[i].SetActive(true);
                  
                }
            }
            if (dex - 1 >= 0)
            {
              
                allObjs[dex - 1].SetActive(false);
            }
            dex += 1;
            Debug.Log("第一个" + (dex - 1).ToString() + "第二个" + (dex).ToString() + "第三个" + (dex + 1).ToString());
        }
        public void TheMainLeftManager(int _startValue)
        {
            for (int i = 0; i < allObjs.Count; i++)
            {
                if (i == _startValue - 1 || i == _startValue || i == _startValue + 1)
                {
                    allObjs[i].SetActive(true);
                }
            }
            if (dex + 1 < allObjs.Count)
            {
                allObjs[dex + 1].SetActive(false);
            }
            dex -= 1;
            Debug.Log("第一个" + (dex - 1).ToString() + "第二个" + (dex).ToString() + "第三个" + (dex + 1).ToString());
        }
        void RightMove(int _value)
        {
            Debug.Log(_value);
            if (_value >= 2 && _value <= allObjs.Count - 2)
            {
                 float _rightVec = _fatherXvalue - (_value - 1) * _identityValue;
                _father.transform.GetComponent<RectTransform>().DOLocalMoveX(_rightVec, _moveValue).OnComplete(
                    () => {
                        if (_father.transform.GetComponent<RectTransform>().localPosition.x!=_rightVec )
                        {
                            _father.transform.GetComponent<RectTransform>().localPosition = new Vector3(_rightVec, _father.transform.localPosition.y, _father.transform.localPosition.z);
                        }
                    }
                    );
            }
        }
        void LeftMove()
        {
           
            if (dex - 2 > -1 && dex + 1 < allObjs.Count)
            {
                float _leftVec = _father.transform.GetComponent<RectTransform>().localPosition.x +_identityValue;
                // TheMainLeftManager(dex - 1);
               _father.transform.GetComponent<RectTransform>().DOLocalMoveX(_leftVec, _moveValue).OnComplete(() => {
                   if (_father.transform.GetComponent<RectTransform>().localPosition.x != _leftVec)
                   {
                       _father.transform.GetComponent<RectTransform>().localPosition = new Vector3(_leftVec, _father.transform.localPosition.y, _father.transform.localPosition.z);
                   }
    
               });
            }
    
        }
    }


    以上是我的相关主要方法,里面有我一些思维痕迹
    下面就是简单项目原文件
    RomanticCute09.zip (4.03 MB, 下载次数: 40, 售价: 1 蛮牛币)
    最近项目比较忙,看时间更新,就这样。
    大家快乐!

    排名
    2714
    昨日变化

    13

    主题

    135

    帖子

    1234

    积分

    Rank: 9Rank: 9Rank: 9

    UID
    251813
    好友
    5
    蛮牛币
    2106
    威望
    0
    注册时间
    2017-10-31
    在线时间
    530 小时
    最后登录
    2019-9-7

    专栏作家活力之星

    沙发
    楼主 2018-12-10 15:36:28 只看该作者
    本帖最后由 码农亚 于 2019-3-25 07:39 编辑

    当前案例是Unity5.5基础上创建的,本身依旧含有左右跳转太快某些时候位置无法正确规整的问题,解决办法实在是很多,大家开动脑筋想想就是。
    [C#] 纯文本查看 复制代码
    using DG.Tweening;
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    //裁剪基本变化,消除左右不一致的相关Bug
    public class UIClipManager : MonoBehaviour {
    
        public List<GameObject> allObjs;
        public GameObject _father;
        public float _fatherXvalue = -564f;
        public float _identityValue = 160f;
        public float _moveValue = 0.5f;
        public int  _currentIndex = 1;
        int dex = 1;
        void Start()
        {//012
         //123
         //234
         //前三个显示
            TheStartSee();
        }
        // Update is called once per frame
        void Update()
        {
            //if (Input.GetKeyDown(KeyCode.R))
            //{
            //    if (dex + 2 < allObjs.Count)
            //    {
            //        RightMove(dex + 1);
            //        TheMainRightManager(dex + 1);
            //    }
    
            //}
            //if (Input.GetKeyDown(KeyCode.L))
            //{
            //    if (dex - 2 > -1)
            //    {
            //        LeftMove();
            //        TheMainLeftManager(dex - 1);
            //    }
            //}
        }
        void TheRightSee(int _value)
        {
            dex += 1;
    
        }
       
        void TheStartSee()
        {
            int startNum = 1;
            for (int i = 0; i < allObjs.Count; i++)
            {
                if (i == startNum - 1 || i == startNum || i == startNum + 1)
                {
                    allObjs[i].SetActive(true);
                }
            }
        }
        public void FinalRight()
        {
            if (dex + 2 < allObjs.Count)
            {
                RightMove(dex + 1);
                TheMainRightManager(dex + 1);
            }
        }
        public void FinalLeft()
        {
            if (dex - 2 > -1)
            {
                LeftMove();
                TheMainLeftManager(dex - 1);
            }
        }
        public void TheMainRightManager(int _startValue)
        {
            //dex+=1;
            Debug.Log("基础标志" + _startValue);
            for (int i = 0; i < allObjs.Count; i++)
            {
                if (i == _startValue - 1 || i == _startValue || i == _startValue + 1)
                {
                    allObjs[i].SetActive(true);
                  
                }
            }
            if (dex - 1 >= 0)
            {
              
                allObjs[dex - 1].SetActive(false);
            }
            dex += 1;
            _currentIndex = dex;
            Debug.Log("第一个" + (dex - 1).ToString() + "第二个" + (dex).ToString() + "第三个" + (dex + 1).ToString());
        }
        public void TheMainLeftManager(int _startValue)
        {
            for (int i = 0; i < allObjs.Count; i++)
            {
                if (i == _startValue - 1 || i == _startValue || i == _startValue + 1)
                {
                    allObjs[i].SetActive(true);
                }
            }
            if (dex + 1 < allObjs.Count)
            {
                allObjs[dex + 1].SetActive(false);
            }
            dex -= 1;
            _currentIndex = dex;
            Debug.Log("第一个" + (dex - 1).ToString() + "第二个" + (dex).ToString() + "第三个" + (dex + 1).ToString());
        }
        void RightMove(int _value)
        {
            Debug.Log(_value);
            if (_value >= 2 && _value <= allObjs.Count - 2)
            {
                 float _rightVec = _fatherXvalue - (_value - 1) * _identityValue;
                _father.transform.GetComponent<RectTransform>().DOLocalMoveX(_rightVec, _moveValue).OnComplete(
                    () => {
                        if (_father.transform.GetComponent<RectTransform>().localPosition.x!=_rightVec )
                        {
                            _father.transform.GetComponent<RectTransform>().localPosition = new Vector3(_rightVec, _father.transform.localPosition.y, _father.transform.localPosition.z);
                        }
                    }
                    );
            }
        }
        void LeftMove()
        {
           
            if (dex - 2 > -1 && dex + 1 < allObjs.Count)
            {
                //float _leftVec = (_father.transform.GetComponent<RectTransform>().localPosition.x +_identityValue);
                //测试
                float _leftVec = CurrentLeftDex(_currentIndex);
                // TheMainLeftManager(dex - 1);
                Debug.Log("左边的目标迁移量" + _leftVec);
               _father.transform.GetComponent<RectTransform>().DOLocalMoveX(_leftVec, _moveValue).OnComplete(() => {
                   if (_father.transform.GetComponent<RectTransform>().localPosition.x != _leftVec)
                   {
                       _father.transform.GetComponent<RectTransform>().localPosition = new Vector3(_leftVec, _father.transform.localPosition.y, _father.transform.localPosition.z);
                   }
    
               });
            }
    
        }
        float  CurrentLeftDex(int _value)
        {
            
            float _rightVec = _fatherXvalue - (_value-2) * _identityValue;
            //_fatherXvalue
            return _rightVec;
        }
    }


    这是我自己做的修正,希望大家有所借鉴!
    4四处流浪
    438/500
    排名
    10344
    昨日变化

    1

    主题

    210

    帖子

    438

    积分

    Rank: 4

    UID
    248391
    好友
    0
    蛮牛币
    370
    威望
    0
    注册时间
    2017-10-12
    在线时间
    117 小时
    最后登录
    2019-9-16
    板凳
    2018-12-10 17:32:00 只看该作者
    7日久生情
    2395/5000
    排名
    1387
    昨日变化

    0

    主题

    743

    帖子

    2395

    积分

    Rank: 7Rank: 7Rank: 7Rank: 7

    UID
    135463
    好友
    0
    蛮牛币
    147
    威望
    0
    注册时间
    2016-1-23
    在线时间
    760 小时
    最后登录
    2019-9-15
    地板
    2018-12-10 17:34:03 只看该作者
    gfjgcjgfjghjhgjhgj
    7日久生情
    2395/5000
    排名
    1387
    昨日变化

    0

    主题

    743

    帖子

    2395

    积分

    Rank: 7Rank: 7Rank: 7Rank: 7

    UID
    135463
    好友
    0
    蛮牛币
    147
    威望
    0
    注册时间
    2016-1-23
    在线时间
    760 小时
    最后登录
    2019-9-15
    5#
    2018-12-11 18:48:20 只看该作者
    6666666666666666666
    5熟悉之中
    959/1000
    排名
    5176
    昨日变化

    1

    主题

    317

    帖子

    959

    积分

    Rank: 5Rank: 5

    UID
    258102
    好友
    1
    蛮牛币
    1367
    威望
    0
    注册时间
    2017-12-6
    在线时间
    363 小时
    最后登录
    2019-8-23
    6#
    2018-12-12 08:16:23 只看该作者
    7日久生情
    2327/5000
    排名
    2248
    昨日变化

    0

    主题

    1285

    帖子

    2327

    积分

    Rank: 7Rank: 7Rank: 7Rank: 7

    UID
    189581
    好友
    0
    蛮牛币
    3702
    威望
    0
    注册时间
    2016-12-5
    在线时间
    416 小时
    最后登录
    2019-9-16
    7#
    2018-12-12 09:27:43 只看该作者
    可以的不错啊
    7日久生情
    2665/5000
    排名
    2252
    昨日变化

    0

    主题

    1214

    帖子

    2665

    积分

    Rank: 7Rank: 7Rank: 7Rank: 7

    UID
    163777
    好友
    2
    蛮牛币
    1187
    威望
    0
    注册时间
    2017-2-27
    在线时间
    827 小时
    最后登录
    2019-9-16
    8#
    2018-12-12 10:10:15 只看该作者
    挺不错的,学习一下
    排名
    39863
    昨日变化

    0

    主题

    7

    帖子

    17

    积分

    Rank: 1

    UID
    305451
    好友
    0
    蛮牛币
    4
    威望
    0
    注册时间
    2018-11-21
    在线时间
    4 小时
    最后登录
    2018-12-14
    9#
    2018-12-12 13:42:12 只看该作者
    受教
    3偶尔光临
    151/300
    排名
    22154
    昨日变化

    0

    主题

    86

    帖子

    151

    积分

    Rank: 3Rank: 3Rank: 3

    UID
    252110
    好友
    0
    蛮牛币
    198
    威望
    0
    注册时间
    2017-11-2
    在线时间
    43 小时
    最后登录
    2019-7-30
    10#
    2018-12-12 15:39:07 只看该作者
    {:106:}{:106:}
    7日久生情
    2395/5000
    排名
    1387
    昨日变化

    0

    主题

    743

    帖子

    2395

    积分

    Rank: 7Rank: 7Rank: 7Rank: 7

    UID
    135463
    好友
    0
    蛮牛币
    147
    威望
    0
    注册时间
    2016-1-23
    在线时间
    760 小时
    最后登录
    2019-9-15
    11#
    2018-12-12 17:54:20 只看该作者
    666666666666666666666666
    7日久生情
    1872/5000
    排名
    1989
    昨日变化

    6

    主题

    565

    帖子

    1872

    积分

    Rank: 7Rank: 7Rank: 7Rank: 7

    UID
    54335
    好友
    3
    蛮牛币
    5439
    威望
    0
    注册时间
    2014-11-9
    在线时间
    619 小时
    最后登录
    2019-8-24
    12#
    2018-12-13 09:06:00 只看该作者
    5熟悉之中
    770/1000
    排名
    5237
    昨日变化

    2

    主题

    204

    帖子

    770

    积分

    Rank: 5Rank: 5

    UID
    208267
    好友
    0
    蛮牛币
    1797
    威望
    0
    注册时间
    2017-2-24
    在线时间
    290 小时
    最后登录
    2019-9-16
    13#
    2018-12-13 10:08:18 只看该作者
    前方迷途太多
    5熟悉之中
    541/1000
    排名
    9489
    昨日变化

    1

    主题

    246

    帖子

    541

    积分

    Rank: 5Rank: 5

    UID
    301614
    好友
    0
    蛮牛币
    550
    威望
    0
    注册时间
    2018-10-29
    在线时间
    174 小时
    最后登录
    2019-9-12
    14#
    2018-12-13 11:28:43 只看该作者
    3偶尔光临
    248/300
    排名
    11989
    昨日变化

    0

    主题

    120

    帖子

    248

    积分

    Rank: 3Rank: 3Rank: 3

    UID
    272742
    好友
    0
    蛮牛币
    89
    威望
    0
    注册时间
    2018-3-16
    在线时间
    48 小时
    最后登录
    2019-8-27
    15#
    2018-12-13 18:11:29 只看该作者
    您需要登录后才可以回帖 登录 | 注册帐号

    本版积分规则

  • 涨知识!文字里的秘密 最全甲骨文书展来了 2019-09-13
  • 晋中市着力将“厕所革命”进行到底 2019-09-05
  • 供应链如何更“智慧” 2019-09-05
  • 红枣食疗效果好 6种吃法最滋补-美食资讯 2019-09-01
  • 党的十九大最重大的理论成就 2019-08-28
  • 余世存:阅读经典不仅是消费,也是责任 2019-08-20
  • 实干树形象 实绩惠民生——“两学一做”特别关注 2019-08-20
  • 曲速引擎:曾被寄予厚望 现遭“一瓢冷水” 2019-08-18
  • 毛泽东说帝国主义都是纸老虎。是有社会基础的 2019-08-07
  • 外国人就医计划示范医院授牌 天津医院泰达医院获认定 2019-07-21
  • 文体 —频道 春城壹网 七彩云南 一网天下 2019-07-18
  • 【理上网来喜迎十九大】苏格:习近平总书记外交思想领航中国特色大国外交 2019-07-18
  • 8种家居环境很败“性” 2019-06-28
  • 2018年全军院校招生计划下达:计划招收学员3.05万名 2019-06-15
  • 晋城市举办干部素质提升工程第十八期专题讲座 2019-06-15
  • 重庆11选5 四川新11选5 紫薇单双四肖中特115 360双色球综合分布图 平码论坛 中国足彩网靠谱吗 大乐透下期预测最准确 任选九场奖金如何计算 海南环岛公路 赌王玩的是什么扑克 国际足球棋 免费足球推荐预测网 秒速飞艇稳赢技巧 微信彩票福袋怎么打开 江苏十一选五开奖结果前三直