当前位置:网站首页>Unity SKFramework框架(十九)、POI 兴趣点/信息点
Unity SKFramework框架(十九)、POI 兴趣点/信息点
2022-07-02 09:45:00 【CoderZ1010】
目录
一、简介
POI可以理解为场景中的一些有意义的点,例如车站、商场、医院、监控等等,该功能通常用于数字孪生项目,主要目的是将代表这些点位的二维图标与三维目标位置进行“绑定”,实质内容就是世界坐标转屏幕坐标。如下例所示,我们将一个监控点的图标与模型位置进行绑定:

该工具已经上传至我的框架SKFramework中的开发工具箱,如图所示。


框架已经在Github开源,地址:GitHub - 136512892/SKFramework: Unity SKFramework开发框架

二、使用说明
1.二维与三维的匹配
通过Match函数将POI图标与三维目标进行匹配,其中flag参数表示匹配的标识符,系统会将标识符相同的RectTransform与GameObject进行匹配。
/// <summary>
/// 根据标识符进行匹配
/// </summary>
/// <param name="flag">标识符</param>
/// <param name="rectTransform">RectTransform组件</param>
public void Match(string flag, RectTransform rectTransform);
/// <summary>
/// 根据标识符进行匹配
/// </summary>
/// <param name="flag">标识符</param>
/// <param name="target">三维目标</param>
public void Match(string flag, GameObject target);2.移除
通过Delete函数移除一个POI点,移除后将不再进行世界坐标转屏幕坐标的计算。
/// <summary>
/// 根据标识符移除
/// </summary>
/// <param name="flag">标识符</param>
/// <returns>移除成功返回true 否则返回false</returns>
public bool Delete(string flag);3.UI分辨率
代码中默认认为UI使用的分辨率为1920*1080,需要根据实际进行更改

4.Camera相机
世界坐标与屏幕坐标的转换是通过Camera类中的WorldToScreenPoint函数实现的,因此系统中需要一个Camera主相机,系统初始化时会首先获取场景中Tag标签为MainCamera的相机,如果不存在再通过FindObjectOfType函数查找相机。

三、Example 示例
using UnityEngine;
using SK.Framework;
public class Example : MonoBehaviour
{
[SerializeField] private RectTransform rt;
[SerializeField] private GameObject target;
private void Start()
{
POI.Match("监控1", rt);
POI.Match("监控1", target);
}
}
运行后如图所示:

边栏推荐
- Linear DP acwing 896 Longest ascending subsequence II
- 3 A VTT端接 稳压器 NCP51200MNTXG资料
- Structured data, semi-structured data and unstructured data
- Package management tools
- Rust language document Lite (Part 1) - cargo, output, basic syntax, data type, ownership, structure, enumeration and pattern matching
- What data types does redis have and their application scenarios
- 线性DP AcWing 899. 编辑距离
- To bypass obregistercallbacks, you need to drive the signature method
- 百款拿来就能用的网页特效,不来看看吗?
- Docsify deploy IIS
猜你喜欢

线性DP AcWing 902. 最短编辑距离

Dijkstra AcWing 850. Dijkstra求最短路 II

Get started REPORT | today, talk about the microservice architecture currently used by Tencent

js4day(DOM开始:获取DOM元素内容,修改元素样式,修改表单元素属性,setInterval定时器,轮播图案例)

Js4day (DOM start: get DOM element content, modify element style, modify form element attributes, setinterval timer, carousel Map Case)

Hash table acwing 840 Simulated hash table

Redis sentinel mechanism and configuration

Ntmfs4c05nt1g N-ch 30V 11.9a MOS tube, pdf

Browser storage scheme

VIM super practical guide collection of this one is enough
随机推荐
How can attribute mapping of entity classes be without it?
Should I have a separate interface assembly- Should I have a separate assembly for interfaces?
Window10 upgrade encountered a big hole error code: 0xc000000e perfect solution
Oracle from entry to mastery (4th Edition)
Dijkstra AcWing 850. Dijkstra求最短路 II
The coloring method determines the bipartite graph acwing 860 Chromatic judgement bipartite graph
OLED screen driver based on stm32
[200 opencv routines] 100 Adaptive local noise reduction filter
3 A VTT端接 稳压器 NCP51200MNTXG资料
面渣逆袭:MySQL六十六问,两万字+五十图详解!有点六
Rust search server, rust quick service finding tutorial
Analog to digital converter (ADC) ade7913ariz is specially designed for three-phase energy metering applications
JS iterator generator asynchronous code processing promise+ generator - > await/async
Direct control PTZ PTZ PTZ PTZ camera debugging (c)
国内首款、完全自主、基于云架构的三维CAD平台——CrownCAD(皇冠CAD)
Package management tools
Browser storage scheme
Counting class DP acwing 900 Integer partition
spfa AcWing 851. spfa求最短路
Mui WebView down refresh pull-up load implementation