Unity设置血条跟随

一,非URP

1,设置UICamera

将Canvas渲染模式改为Screen Space-Camera,并设置好摄像机

对应的摄像机设置为Depth Only,并且只渲染UI

2,制作好血条UI

3,在需要时创建血条,并设置好所属物体

        hpBar = GameMgr_P1.S.InstantiatePrefab(PrefabType.HpBar);
        hpBar.transform.SetParent(GameObject.Find("Canvas").transform, false);
        hpBar.GetComponent<HpBar>().SetOwner(this.barPos);

4,血条更新位置

将目标点的世界坐标转换成屏幕坐标,之后使用RectTransformUtility.ScreenPointToWorldPointInRectangle函数转换为摄像机对应的世界空间中位于给定 RectTransform 平面上的一个位置

    private void Update()
    {
        if (owner == null) return;

        Vector3 screenPos = Camera.main.WorldToScreenPoint(owner.position);
        Camera uiCamera = GameObject.FindWithTag("UICamera").GetComponent<Camera>();
        if (RectTransformUtility.ScreenPointToWorldPointInRectangle(
            transform.parent as RectTransform,
            screenPos,uiCamera,
            out Vector3 worldPoint))
        {
            transform.position = worldPoint;

        }
    }

二,URP

urp时相机没有depthonly模式,camera组件也有所变化

1,同样设置canvas渲染模式改为Screen Space-Camera,并设置好UI摄像机

2,相机的渲染模式改为overlay

3,主摄像机(渲染模式为base)的栈中添加ui摄像机

4,ui脚本相关同上

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值