问题:
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。