Unity3d坐标与NGUI坐标转换

A物体在NGUI空间,父节点C,B物体在Unity3d空间。AC的渲染相机为camera2d,B的渲染相机为camera3d,如果我们希望把A物体设置在B物体上面10像素的位置上,但是A物体仍旧在NGUI空间,可以如下设置:

Vector3 result = Vector3.zero;

Vector3 screen3dPos = camera3d.WorldToScreenPoint(B.position);

result = camera2d.ScreenToWorldPoint(screen3dPos);

result.z = 0;

result = c.InverseTransformPoint(result);

result.y += 10;

A.localpostion = result;

时间: 2024-08-05 10:53:31

Unity3d坐标与NGUI坐标转换的相关文章

[Unity3D]Unity3D再叙NGUI之血条及技能冷却效果

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 喜欢我的博客请记住我的名字:秦元培,我的博客地址是blog.csdn.net/qinyuanpei. 转载请注明出处,本文作者:

unity3d中的ngui的一些笔记

一. NGUI的直接用法 1. Attach a Collider:表示为NGUI的某些物体添加碰撞器,如果界面是用NGUI做的,只能这样添加.(注:用Component添加无效). 2. Attach an Anchor:表示为该物体添加了UIAnchor脚本,作用是避免像素偏移的问题 3. Attach UIStretch:表示为该物体添加了UIStretch脚本,提供缩放功能 4. Make Pixel Perfect:表示自动为你调整Transform的尺寸 5. Create a Pa

【Unity3D】【NGUI】如何动态给EventDelegate添加参数

NGUI讨论群:333417608 NGUI版本:3.6.8 注意:参数必须是公共成员变量,不能是栈上的.或者私有的(就是临时在函数里面定义的或者是函数的参数都不行) using UnityEngine; using System.Collections; public class SZEventDelegateParams : MonoBehaviour { public int param = 2; void Start() { // 创建新的delegate,最后调用此(this)脚本的F

【Unity3D】【NGUI】Atlas的动态创建

NGUI讨论群:333417608 NGUI版本:3.6.5 1.参见SZUIAtlasMakerRuntimeTest设置相应的值以上值需要提前设置好 2.没有检查是否atlas能够正确创建,自己可以改,加入返回值 3.代码都是在NGUI里面拷贝出来的,只是进行改动,没有新代码 4.适用与那种从网上下图片,之后还不想用UITexture的人,但是还是建议用UITexture如果drawcall不是问题的话 5.自己以后更新按我的方式改改就可以 6.动态创建速度较慢,建议在游戏启动的时候运行 7

【Unity3D】【NGUI】UIRect的Anchor的使用

NGUI讨论群:333417608 NGUI版本:3.6.5 以下面的图,解释下基本的Anchors的使用(可以通过官方的Anchor和Chat例子进行深入学习) Target不是一定要是Sprite,可以是任意的UIRect(UISprite.UIPanel的基类)或者可以是Camera.如果是UIRect类型,对齐的就是当前UIRect的边缘,如果是Camera,对齐的就是屏幕. (这里说的当前图片指的下面最终图片的绿色,背景图片指的下面最终图片的黑色) Type:Advanced--选项比

PHP+百度地图API+JAVASCRIPT实现GPS坐标与百度坐标转换的实例

原文:PHP+百度地图API+JAVASCRIPT实现GPS坐标与百度坐标转换的实例 <!--小幅的坐标转换点位程序--> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <?php $jingwei="new BMap.Point($lon

【Unity3D】【NGUI】本地生成API文档

原地址:http://blog.csdn.net/u012091672/article/details/17438135 NGUI讨论群:333417608 1.安装Doxygen(http://www.stack.nl/~dimitri/doxygen/) 2.配置 1)工程名 2)版本 3)源代码目录(根据自己的修改) 4)递归扫描(包含子目录) 5)输出目录 1)只输出可以被文档化的实体 2)c#文档优化 1)有导航栏 2)不使用排版 1)随便指定个目录(用来保存配额) 2)切换到运行界面

Unity3D开发之NGUI结合粒子系统的遮挡问题

原地址:http://blog.csdn.net/lihandsome/article/details/22194025 我的是NGUI3.0.3版本,在加入粒子系统的时候发现一直都是在精灵的下面,所以必须要解决这个问题. 问题的出现是因为NGUI和粒子系统的渲染队列问题,那我们自己就可以新建一个属于粒子系统的Shader,然后直接复制原来系统自带的那个Shader的代码,修改代码里面的 [csharp] view plaincopy "Queue"="Transparent

unity3d世界坐标与ngui坐标

世界坐标转换到NGUI坐标: 场景中有一个照3D物体的透视摄像机,NGUI使用自己独立的正交摄像机,转换步骤如下:    1. 使用透视摄像机把世界坐标转换到屏幕坐标 Vector3 pos = Camera.main.WorldToScreenPoint(worldPos); pos.z = 0f;   //z一定要为0. 2. 使用UI摄像机转换到NGUI的世界坐标 Vector3 pos2 = UICamera.currentCamera.ScreenToWorldPoint(pos);