Lockon Target Data Structure(lockontarget重置)

问题:
1.锁定ui不能处在一个完美的位置(当被锁角色体积比较大的时候,要去计算他的中心点位置)
2.当本身角色远离被锁定角色的时候,锁定ui的位置会发生改变。

整理cameracontroller、里面的代码利用类以及构造函数重新声明lockontarget

private LockTarget lockTarget;


private class LockTarget
    {
        public GameObject obj;
        public float halfHeight;//半高

        public LockTarget(GameObject _obj)
        {
            obj = _obj;


        }
    }

增加被锁物体的半高计算:

      if (cols.Length == 0)//长度为0那么就是没锁过东西
        {
            lockTarget = null;
            lockDot.enabled = false;//圆圈不显示
            lockState = false;


        }
        else//否则锁过
        {
            foreach (var col in cols)
            {
                // print(col.name);
                if (lockTarget != null && lockTarget.obj == col.gameObject)
                {
                    lockTarget = null;
                    lockDot.enabled = false;
                    lockState = false;
                    break;
                }
                lockTarget = new LockTarget(col.gameObject,col.bounds.extents.y);//将被锁定的东西赋值给locktarget   //半高计算
                lockDot.enabled = true;//显示圆圈
                lockState = true;
                break;
            }

        }
    }

    private class LockTarget
    {
        public GameObject obj;
        public float halfHeight;//半高

        public LockTarget(GameObject _obj,float _halfHeight)
        {
            obj = _obj;
            halfHeight = _halfHeight;

        }
    }

下次既可以利用这个半高点来修正锁定ui。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值