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

(207评价)
优惠后 ¥1899.00优惠前 ¥2499.00 双十一全年最大力度限时优惠
1对1 答疑即时回复7天无理由退款30天价保提问必答

服务保障

1对1 答疑

提供专属的一对一在线答疑,快速答疑解惑。

即时回复

及时响应学习咨询,帮助解决问题。

7天无理由退款

购买后7天内可申请无理由退款。

30天价保

购买后30天内如遇降价,可申请价保。

提问必答

对于提问做到有问必答,帮您扫清学习过程中的种种障碍

咨询一个关于LookAt的问题。。。。
sdhexu发起了话题2017-08-19
5
回复
1019
浏览


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

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

新建一个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条回复,点击查看
    你还没有登录,请先登录或注册!
发表回复
你还没有登录,请先 登录或 注册!