Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(197评价)
价格: 4431.00元
咨询一个关于LookAt的问题。。。。
sdhexu发起了话题2017-08-19
5
回复
881
浏览


大神请看上图红圈中角色的血条。。。

我这个血条是这么创建的:

新建一个Canvas,在里面放置两个image一个绿色的做背景,一个红色的做血量。

这个Canvas的RenderMode设置成了World Space,然后挂到角色下面。

新建了一个脚本,叫做LookAtCamare,挂在Canvas上。。代码很简单就一行:

public class LookAtCamera : MonoBehaviour {

    private void Update()
    {
        transform.LookAt(Camera.main.transform);

        // transform.rotation = Quaternion.Euler(
        //              transform.rotation.eulerAngles.x, // 0,
        //              transform.rotation.eulerAngles.y, // 0,
        //              0
        // );
    }
}

结果发现,如果摄像机与角色坐标在水平上相同(就是在一条线上),血条显示正常,但是如果别的玩家在,血条就歪了。

我在Update里,手动修改那几个坐标值(代码注释部分)都是不对的,所有的可能组合都试过。

因为血条会跟着角色动,所以让他面向摄像机但同时保持与屏幕平行,咋整啊??

所有回复
  • sdhexu 2017-08-20

    大神???膜拜...

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • sdhexu 2017-08-21

    我就是想让血条跟屏幕水平起来....简单的lookat貌似不行。有啥好的办法么。

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • siki 2017-08-22

    血条放在角色外面,控制跟随,这样只有位置跟随,不控制旋转, 然后再lookat 屏幕

    • sdhexu 2017-08-22

      嗯。感谢siki大神给的这个思路。。。不过貌似也挺麻烦的,因为放到外面的话,我角色实例化的时候,还得去实例化这是血条。。而且如果想让网络中的其他玩家也看到自己的血条,还得将这个血条添加networktransform组件什么的然后单独处理..... 但是真心感谢siki老师。

      (0) 回复
    还有-4条回复,点击查看
    你还没有登录,请先登录注册
  • sdhexu 2017-09-01

    我滴神啊。这个问题终于完美的解决了!!!解决方法很简单,居然都想不到的简单。

    transform.LookAt(Camera.main.transform);
    

    把上面的代码,换成下面的:

    transform.rotation = Camera.main.transform.rotation;
    

    之前老想着lookat,其实换个角度想,换个思路。。。是不是很简单啊。

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!