找回密码
 注册帐号

扫一扫,访问微社区

Jeremy 【Unity3D自学记录】 UGUI界面跟随3D物体

3
回复
766
查看
[ 复制链接 ]
排名
5981
昨日变化

16

主题

130

帖子

592

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
2999
好友
1
蛮牛币
689
威望
0
注册时间
2013-9-1
在线时间
200 小时
最后登录
2019-4-16

专栏作家

2018-10-31 10:17:41 显示全部楼层 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
[AppleScript] 纯文本查看 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript : MonoBehaviour {
    public RectTransform UGUIPanel;
    public int SetX;
    public int SetY;
    void Update()
    {
        Vector2 v2 = Camera.main.WorldToScreenPoint(this.gameObject.transform.position);
        UGUIPanel.anchoredPosition = v2 + new Vector2(SetX, SetY);

        if (IsInView(this.gameObject.transform.position))
        {
            UGUIPanel.gameObject.SetActive(true);
        }
        else
        {
            UGUIPanel.gameObject.SetActive(false);
        }  
    }
    public bool IsInView(Vector3 worldPos)
    {
        Transform camTransform = Camera.main.transform;
        Vector2 viewPos = Camera.main.WorldToViewportPoint(worldPos);
        Vector3 dir = (worldPos - camTransform.position).normalized;
        float dot = Vector3.Dot(camTransform.forward, dir);     //判断物体是否在相机前面  

        if (dot > 0 && viewPos.x >= 0 && viewPos.x <= 1 && viewPos.y >= 0 && viewPos.y <= 1)
            return true;
        else
            return false;
    } 
}

回复

使用道具 举报

3偶尔光临
190/300
排名
8822
昨日变化

0

主题

11

帖子

190

积分

Rank: 3Rank: 3Rank: 3

UID
300331
好友
0
蛮牛币
465
威望
0
注册时间
2018-10-17
在线时间
47 小时
最后登录
2019-1-27
2018-11-8 08:55:58 显示全部楼层
666666666相机跟随???
回复 支持 反对

使用道具 举报

排名
64923
昨日变化
1

0

主题

10

帖子

12

积分

Rank: 1

UID
303764
好友
0
蛮牛币
8
威望
0
注册时间
2018-11-8
在线时间
0 小时
最后登录
2018-11-8
2018-11-8 20:33:21 显示全部楼层
学习了谢谢楼主
回复

使用道具 举报

排名
409
昨日变化

1

主题

374

帖子

2866

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
4748
好友
0
蛮牛币
9244
威望
0
注册时间
2013-9-29
在线时间
831 小时
最后登录
2019-4-25
2019-4-3 17:58:58 显示全部楼层
学习了谢谢楼主
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则