[Unity3D] 关于公告板实现的错误认识

Unity3d学习之路——UI系统之公告牌 Unity3d学习之路——UI系统之公告牌 作业内容要求 以下作业四选一: 1、血条(Health Bar)的预制设计。具体要求如下 分别使用 IMGUI 和 UGUI 实现 使用 UGUI,血条是游戏对象的一个子元素,任何时候需要面对主摄像机 分析两种实现的优缺点 给出预制的使用方法 2、 UI 效果制作(你仅需要实现以下效果之一) 进入 NGUI 官方网站,使用 UGUI 实... 阅读详情

实现一个公告板最直接的是觉得应该这样做:

  1. usingUnityEngine;
  2.  
  3. publicclassBillboard :MonoBehaviour
  4. {
  5.     voidUpdate()
  6.     {
  7.         transform.LookAt(Camera.main.transform);
  8.     }
  9. }


但是这不是正确的做法,至少在实现粒子效果Billboard的时候不是。而是应该这样写:

  1. usingUnityEngine;
  2.  
  3. publicclassBillboard :MonoBehaviour
  4. {
  5.     voidUpdate()
  6.     {
  7.         Vector3target=transform.position+Camera.main.transform.rotation*Vector3.back;
  8.         Vector3up=Camera.main.transform.rotation*Vector3.up;
  9.         transform.LookAt(target,up);
  10.     }
  11. }

物体调用LookAt时,目标target要使得物体与摄像机朝向平行,up方向是摄像机的up方向在世界坐标系里的表示,这跟很多人的直觉不相符,所以感觉上是错误的做法。

而在做射线查询的时候,射线选择的却是从摄像机的位置出发经过近平面某点(点击点经过视口变换)的射线,这也跟很多人的直觉不相符。

实际上是透视投影给人的错觉,他将平行线变成了不平行,汇于摄像机,而我们又站在世界坐标系中想问题。


公告牌自旋转代码(水平面)(unity3D C#) 放置一个plan面片,面片设置本代码,自动进入billboard模式,默认参数为:围绕竖直轴旋转,自动面对当前激活的相机。 立即下载

相关推荐

公告板(billboard)脚本2

公告板(billboard)脚本2

【Unity学习】制作一个可滑动的公告栏

制作一个简单的可滑动的公告栏

九圣残炎的编程博客 3079

Xilinx HydraMini试玩教程

HydraMini是Xilinx推出的基于Pynq-Z2开发板的自动驾驶开发小车,其有着简单易学、高灵活性、高扩展性、高性能等优良特性,是研究人员和学生进入自动驾驶领域的一个平台。本教程会通过最基础的讲解和步骤带领读者熟悉这个平台的基本开发流程。

qq_25762163的博客 1773

Unity 3D 可展开公告牌

Unity 3D 可展开公告牌

weixin_53301716的博客 692

QuickFix Java 讲解(一)概述、下载方法,和协议内容

本系列力求手把手教你怎样利用QuickFix Java 搭建自己的 FIX 协议收法平台,以及其中的注意事项。 所有源码的地址(免费): https://github.com/zongzhec/QuickFixPractise 1. 什么是FIX,QuickFix,Quick Java? 1.1. 什么是FIX 官网以及其他翻译自官网的帖子都太官方了,这里我们设想一个情景: 你是一个交易员,现在客户打电话来让你下个单买点股票。你啪啪啪的在你的机器上熟练地输入了下单指令。系统显示:成...

4574

Ansys Zemax|无焦系统设计中的角度单位优化技巧

本文详细介绍了在Ansys Zemax OpticStudio中进行无焦系统设计的核心技巧。重点阐述了从聚焦思维到角度思维的转换,并演示了如何通过开启‘无焦像空间’模式、构建以波前和光束尺寸为目标的评价函数来优化激光扩束镜等系统。文章还分享了使用IMSF操作数处理混合系统以及常见误区避坑的实用指南,旨在帮助光学设计者高效完成无焦系统的设计与分析。

weixin_29231027的博客 360

Unity3D自动匹配摄像机全方向公告板

项目需要在GUI上做一些特效,按道理应该是直接做2D序列帧动画,然后GUI播放的,但是介于美术实现的时间原因,决定用例子来做UI特效,但是目前遇到难题是GUI不能加载粒子。 所以决定运用公告板来虚拟一个UI,脚本代码如下: FaceToCamera.cs using UnityEngine; using System.Collections; using System; publi

无聊敲代码 越敲越有劲 1771

RNA-Seq数据分析实战:从FastQC到STAR比对的完整流程(附避坑指南)

本文提供了RNA-Seq数据分析从FastQC质控到STAR比对的完整实战流程与避坑指南。详细解读了FastQC/MultiQC报告的关键指标,并重点阐述了STAR比对工具的核心参数设置、索引构建及性能优化策略,旨在帮助用户获得准确可靠的比对结果,为下游基因表达分析奠定坚实基础。

weixin_29290259的博客 92

unity3d Billboard(公告板技术)

公告板技术是3D游戏中用的非常多的一种技术,主要是用于控制场景中的Texture的方向,让他始终以一定的角度对着我们的镜头(一般是垂直于镜头)。 如我们在3D游戏中看到的怪物的蓝、红和怪物名字、一些花草树木等,无论我们在哪个方向看它总是对着我们。 如下图所示: using UnityEngine; using System.Collections; pu

承影 1万+

K8s(二十一):在 Kubernetes 集群中部署 MySQL8.0 高可用集群(1主2从)

🔴 K8s(二十一):在 Kubernetes 集群中部署 MySQL8.0 高可用集群(1主2从)

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 3万+

第11.4节 混合储能系统能量管理

混合储能系统(HESS)的能量管理策略采用分层架构实现多时间尺度优化:调度层(小时级)进行经济优化,协调层(秒级)基于频率分解分配功率,执行层(毫秒级)实现快速跟踪。深度强化学习(DRL)方法通过定义状态空间、动作空间和多目标奖励函数,能有效处理系统不确定性和多目标优化问题。HESS性能评估需综合技术指标(如调节性能Kp值、设备寿命指标)和经济指标(净现值NPV、平准化储能成本LCOS),并遵循"建模-仿真-实验"的闭环流程。

技术工作者 246

Unity之公告板实现

一、UI检测 因为所有UI都是通过BoxCollider+Ray的方式来触发业务逻辑, 所以Canvas的RenderMode是WorldSpace,EventCamera是专用的UICamera, UICamera的Projection是Orthographic,注意ClippingPlanes的Near和Far的数值调整。 二、模型检测 模型也是BoxCollider+Ray来触发业务逻辑, ...

itsxwz 2033

iStoreOS等软路由插件卸载的残留?分享一款软路由高级卸载工具,自定义卸载,轻松解决卸载残留问题

iStoreOS用户看过来!👀 还在被插件包残留困扰吗?本文分享一款“高级卸载”的插件,助你深度清理iStoreOS系统,彻底解决软件卸载不净的痛点,告别频繁恢复出厂设置的烦恼!🚀

XiaoqiangClub的博客 1543

Unity3D 使用UGUI实现公告牌

1 实验要求 进入 NGUI 官方网站,使用 UGUI 实现以下效果Quest Log 公告牌 2 项目资源 项目代码 演示视频 3 实现效果 展开前: 展开后: 4 整体UI目录架构 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o6OwwNcp-1640409407002)(pictures.assets/image-20211225124606316.png)] 5 实现过程 1 选择一个场景,在场景下创建一个panel,调整合适的尺寸,位置和颜色明暗,作为公告牌的

yoyo_hu的博客 2278

SpringBoot4.0+JDK25+GraalVM实战:云原生新纪元,微服务性能翻倍的落地指南

三者的组合不是偶然,而是“框架优化+JDK升级+虚拟机革新”的必然结果——SpringBoot4.0完善了对GraalVM原生镜像的支持,JDK25强化了云原生与AOT编译能力,GraalVM则提供了极致的启动速度和资源利用率,三者协同,刚好命中云原生微服务的核心痛点。SpringBoot4.0+JDK25+GraalVM的组合,不是简单的版本升级,而是云原生微服务的一次性能革命。

2601_94871597的博客 1141

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Unity c# billboard 公告板 公告牌 广告牌

转载自 Unity 公告板 Billboard C#实现公告版,物体的up轴与相机的up轴一致,z轴与相机的z轴相反。 using UnityEngine; using System.Collections; public class Billboard : MonoBehaviour { // Use this for initialization void Start () { cameraToLookAt=Camera.main; } publi

weixin_43149049的博客 1023

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Unity 公告板效果

using System.Collections; using System.Collections.Generic; using UnityEngine; public class LookAtTarget : MonoBehaviour { public bool mainCameraAsTarget; public Transform target; public bool rever; public bool freezeX; Vector3 dire; .

qq_39849535的博客 414

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

用Unity3D实现可展开公告版

用Unity3D实现可展开公告版 项目地址 可展开公告版 完成效果图 要求 UI 效果制作: 进入 NGUI 官方网站,使用 UGUI 实现可展开 Quest Log 公告牌效果: 项目实现过程 1、首先创建一个Scroll View,然后给Scroll View的子元素ViewPort的子元素Content添加一个Vertical Layout Group组件,让里面的内容垂直分布,因为没有用到横向滚动的滑动条,所以可以将横向滚动的滚动条,即Scroll View的子元素Scroll Vi

StuGeek的博客 2698

shaderlab Billboard公告牌

去年疫情+部分私人原因搞的我人都要自闭了 还是得好好学习,别想那有的没的,希望现在止损还来得及 代码看的unity shader入门精要 代码 // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' Shader "Custom/BillboardShader" { Properties { _Color ("Color", Color) = (1,1,1,1)

MaxLykoS的博客 458

公告板shader

Shader "Custom/LightPoint" { Properties { _MainTex ("Main Tex", 2D) = "white" {} _Color ("Color Tint", Color) = (1, 1, 1, 1) } SubShader { Tags {"Queue...

weixin_30540691的博客 321

Unity3d中的公告板

公告板技术,没时间翻译,先摘下来备注吧 原文:http://wiki.unity3d.com/index.php?title=CameraFacingBillboard Description This script makes the object which it is attached to align itself with the camera. This is useful fo

移动应用的春天 1474

Unity公告板的使用:

Unity公告板的使用: 公告板技术是3D游戏中用的非常多的一种技术,主要是用于控制场景中的Texture的方向,让他始终以一定的角度对着我们的镜头(一般是垂直于镜头)。 /---------------------------------------------------------------- // description:公告板组件,用于让对象始终朝向摄像机 // Dat

蒙双眼看世界 3770

Unity3D公告板

网上看到些Unity3D的公告板的方法,国内的有问题,国外的那个http://www.unifycommunity.com/wiki/index.php?title=CameraFacingBillboard还是对的,不过初始朝向方向要是+-Z轴。 改了点可以设置面向法线,然后对面的默认朝向就没啥子要求了。   using UnityEngine; using System.Collect

HoneyCat的月光浴场 5938

Unity Shader 公告板, billborad的实现思路们--------------马上发车,去往东莞的路上,你我不在孤独

思路一:CPU实现思路二:GPU实现思路1.1不是有个LookAt么?!transform.LookAt(Camera.main.transform);貌似有些许问题。。思路1.2那就同步相机的旋转如何?transform.rotation = Camera.main.transform.rotation;思路2.1,shader去做。。。呃。。。。先把一个测试模型上一下,模式是两个三角面的qua...

C.P.的博客 2321

Unity 公告板 Billboard

创建脚本如下 Billboard.cs using UnityEngine; using System.Collections; public class Billboard : MonoBehaviour { // Use this for initialization void Start () { cameraToLookAt=Camera.main; ...

weixin_30685029的博客 267

3D ACIS Modeler 在测量软件里怎么用?几何查询、区域判断与测点布点

本文面向测量软件开发团队,梳理 CAD 模型导入三坐标测量软件后的几何判断工作:如何借助 3D ACIS Modeler 完成模型对象访问、测量区域判断与空间关系分析,并结合 LK Metrology CAMIO 官方案例说明内核与应用的分工,最后给出自研与引入内核的评估思路。

HuiduCADTech的博客 326
上一篇: [C语言控]用C语言调用DirectWrite
manWithRose
博客等级 码龄17年 3粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值