search
HomeDatabaseMysql TutorialNGUI研究之3D模型坐标转2D屏幕坐标
NGUI研究之3D模型坐标转2D屏幕坐标Jun 07, 2016 pm 03:12 PM
coordinateScreenfriendModelCompareResearch

刚好今天有朋友问我,比较典型的例子就是游戏里面人物的血条。原理很简单就是把3D点换算成2D的点,但是由于NGUI自身是3D所以我们需要先把NGUI下的点转成2D点,然后在把他转成3D的点。听起来有点绕,不要紧我直接上代码。对屏幕自适应不明白的看NGUI研究之如



刚好今天有朋友问我,比较典型的例子就是游戏里面人物的血条。原理很简单就是把3D点换算成2D的点,但是由于NGUI自身是3D所以我们需要先把NGUI下的点转成2D点,然后在把他转成3D的点。听起来有点绕,不要紧我直接上代码。对屏幕自适应不明白的看NGUI研究之如何自适应屏幕

目前我一直都是用NGUI来做人物血条,但是2D血条都会有个限制,就是它不能和模型有遮挡关系。不过血条可以根据人物的位置调节,比如远一点的人物血条会小一些,近一点的人物血条会大一些。

最好让美术做FBX的时候直接内置一个GameObject 的点,因为模型有的高有的低,所以血条的位置高度是不一样的,如果美术内置的话可以让美术来调节模型头顶上的点,这样比较方便。


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

using UnityEngine;

using System.Collections;

 

publicclassNewBehaviourScript :MonoBehaviour{

 

  //角色

    publicTransform Cube;

    //角色的血条

    publicTransform UI;

 

  //默认血条缩与摄像机的距离

    privatefloatFomat;

    //角色头顶的点, 最好让美术把这个点直接做在fbx模型里面。

    privateTransform Head;

 

    voidStart()

    {

      //找到角色身上头顶的点

        Head=Cube.Find("head");

        //计算以下默认血条的距离,也可以写个常量,就是标记一下

        Fomat  =Vector3.Distance(Head.position,Camera.main.transform.position);

    }

 

    voidUpdate()

    {

      //这里可以判断一下 如果位置没有变化就不要在赋值了

        floatnewFomat=Fomat/Vector3.Distance(Head.position,Camera.main.transform.position);

        UI.position  =WorldToUI(Head.position);

        //计算出血条的缩放比例

        UI.localScale=Vector3.one *newFomat;

 

    //测试代码,按下W S键前后移动角色

        if(Input.GetKey(KeyCode.W))

            Cube.Translate(Vector3.forward);

        if(Input.GetKey(KeyCode.S))

            Cube.Translate(Vector3.back);

    }

 

  //核心代码在这里把3D点换算成NGUI屏幕上的2D点。

    publicstaticVector3 WorldToUI(Vector3 point)

    {

        Vector3 pt=Camera.main.WorldToScreenPoint(point);

        //我发现有时候UICamera.currentCamera 有时候currentCamera会取错,取的时候注意一下啊。

        Vector3 ff=     UICamera.currentCamera.ScreenToWorldPoint(pt);

        //UI的话Z轴 等于0

        ff.z=0;

        returnff;

    }

}

 

再说一下,一般血条可能都是由多个UISprite组成,那么最好把这些Sprite都挂在同一个GameObject下面,这样只需要修正父对象,所以子对象的缩放都会正确。控制角色移动近一点的截图。

NGUI研究之3D模型坐标转2D屏幕坐标

控制角色移动远一点的截图,你会发现血条在屏幕上的比例是不会变化的。

NGUI研究之3D模型坐标转2D屏幕坐标

祝大家学习愉快,欢迎讨论,嘿嘿嘿嘿

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
扩散+超分辨率模型强强联合,谷歌图像生成器Imagen背后的技术扩散+超分辨率模型强强联合,谷歌图像生成器Imagen背后的技术Apr 10, 2023 am 10:21 AM

近年来,多模态学习受到重视,特别是文本 - 图像合成和图像 - 文本对比学习两个方向。一些 AI 模型因在创意图像生成、编辑方面的应用引起了公众的广泛关注,例如 OpenAI 先后推出的文本图像模型 DALL・E 和 DALL-E 2,以及英伟达的 GauGAN 和 GauGAN2。谷歌也不甘落后,在 5 月底发布了自己的文本到图像模型 Imagen,看起来进一步拓展了字幕条件(caption-conditional)图像生成的边界。仅仅给出一个场景的描述,Imagen 就能生成高质量、高分辨率

GPT-4的研究路径没有前途?Yann LeCun给自回归判了死刑GPT-4的研究路径没有前途?Yann LeCun给自回归判了死刑Apr 04, 2023 am 11:55 AM

Yann LeCun 这个观点的确有些大胆。 「从现在起 5 年内,没有哪个头脑正常的人会使用自回归模型。」最近,图灵奖得主 Yann LeCun 给一场辩论做了个特别的开场。而他口中的自回归,正是当前爆红的 GPT 家族模型所依赖的学习范式。当然,被 Yann LeCun 指出问题的不只是自回归模型。在他看来,当前整个的机器学习领域都面临巨大挑战。这场辩论的主题为「Do large language models need sensory grounding for meaning and u

深度学习撞墙?LeCun与Marcus到底谁捅了马蜂窝深度学习撞墙?LeCun与Marcus到底谁捅了马蜂窝Apr 09, 2023 am 09:41 AM

今天的主角,是一对AI界相爱相杀的老冤家:Yann LeCun和Gary Marcus在正式讲述这一次的「新仇」之前,我们先来回顾一下,两位大神的「旧恨」。LeCun与Marcus之争Facebook首席人工智能科学家和纽约大学教授,2018年图灵奖(Turing Award)得主杨立昆(Yann LeCun)在NOEMA杂志发表文章,回应此前Gary Marcus对AI与深度学习的评论。此前,Marcus在杂志Nautilus中发文,称深度学习已经「无法前进」Marcus此人,属于是看热闹的不

科学家展示世界上有史以来超小的“螃蟹”遥控步行机器人,体积比跳蚤还小科学家展示世界上有史以来超小的“螃蟹”遥控步行机器人,体积比跳蚤还小Apr 09, 2023 pm 10:41 PM

日前,美国西北大学工程师开发出有史以来最小的遥控步行机器人,它以一种小巧可爱的螃蟹形式出现。这种微小的“螃蟹”机器人宽度只有半毫米,可以弯曲、扭曲、爬行、行走、转弯甚至跳跃,无需液压或电力。IT之家了解到,相关研究成果发表在《科学・机器人》上。据介绍,这种机器人是用形状记忆合金材料所制造的,然后可以变成所需的形状,当你加热后又会变回原来的形状,而热量消失时可以再次弹回变形时的样子。据介绍,其热量是由激光所带来的。激光通过“螃蟹”加热合金,但因为它们非常小,所以热量传播非常快,这使得它们的响应速度

用魔法打败魔法!一个叫板顶级人类棋手的围棋AI输给了它的同类用魔法打败魔法!一个叫板顶级人类棋手的围棋AI输给了它的同类Apr 12, 2023 am 08:40 AM

近几年,自我博弈中的强化学习已经在围棋、国际象棋等一系列游戏中取得了超人的表现。此外,自我博弈的理想化版本还收敛于纳什均衡。纳什均衡在博弈论中非常著名,该理论是由博弈论创始人,诺贝尔奖获得者约翰 · 纳什提出,即在一个博弈过程中,无论对方的策略选择如何,当事人一方都会选择某个确定的策略,则该策略被称作支配性策略。如果任意一位参与者在其他所有参与者的策略确定的情况下,其选择的策略是最优的,那么这个组合就被定义为纳什均衡。之前就有研究表明,自我博弈中看似有效的连续控制策略也可以被对抗策略利用,这表明

介绍全球首个基于自监督学习的分子图像生成框架ImageMol介绍全球首个基于自监督学习的分子图像生成框架ImageMolApr 23, 2023 pm 12:46 PM

分子是维持物质化学稳定性的最小单位。对分子的研究,是药学、材料学、生物学、化学等众多科学领域的基础性问题。分子的表征学习(MolecularRepresentationLearning)是近年来非常热门的方向,目前可分为诸多门派:计算药学家说:分子可以表示为一串指纹,或者描述符,如上海药物所提出的AttentiveFP,是这方面的杰出代表。NLPer说:分子可以表示为SMILES(序列),然后当作自然语言处理,如百度的X-Mol,是这方面的杰出代表。图神经网络研究者说:分子可以表示为一个图(G

参数少量提升,性能指数爆发!谷歌:大语言模型暗藏「神秘技能」参数少量提升,性能指数爆发!谷歌:大语言模型暗藏「神秘技能」Apr 11, 2023 pm 11:16 PM

由于可以做一些没训练过的事情,大型语言模型似乎具有某种魔力,也因此成为了媒体和研究员炒作和关注的焦点。当扩展大型语言模型时,偶尔会出现一些较小模型没有的新能力,这种类似于「创造力」的属性被称作「突现」能力,代表我们向通用人工智能迈进了一大步。如今,来自谷歌、斯坦福、Deepmind和北卡罗来纳大学的研究人员,正在探索大型语言模型中的「突现」能力。解码器提示的 DALL-E神奇的「突现」能力自然语言处理(NLP)已经被基于大量文本数据训练的语言模型彻底改变。扩大语言模型的规模通常会提高一系列下游N

用量子纠缠当GPS,无信号地区也能精准定位了用量子纠缠当GPS,无信号地区也能精准定位了May 04, 2023 pm 10:58 PM

量子纠缠(quantumentanglement)是指粒子之间发生的一种特殊耦合现象。在纠缠态下,我们无法单独描述各个粒子的性质,只能描述整体系统的性质的现象,这种影响不随距离的改变而消失,哪怕粒子之间相隔整个宇宙也不会变。一项新的研究表明,使用量子纠缠机制,传感器可以在检测运动时更加准确且更快。科学家们认为,这些发现可能有助于发展不依赖GPS的导航系统。在美国亚利桑那大学等机构在《NaturePhotonics》提交的一项新研究中,研究人员对光机械传感器(optomechanicalsenso

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools