Carema、射线、Playerprefs讲解

一、Carema

静态属性�allCameras,allCamerasCount,main
实例属性�参考属性面板
实例方法
ScreenPointToRay() 屏幕位置转射线 返回一条射线从摄像机通过一个屏幕点。
�ScreenToWorldPoint() 屏幕转视窗位置 从屏幕空间到视窗空间的变换位置。

屏幕空间以像素定义。屏幕的左下为(0,0);右上是(pixelWidth,pixelHeight),Z的位置是以世界单位衡量的到相机的距离。 �WorldToScreenPoint() 世界转屏幕位置 从世界空间到屏幕空间变换位置�WorldToViewportPoint() 视窗转世界位置 视口空间是归一化的并相对于相机的,相机的左下为(0,0);右上是(1,1);Z的位置是以世界单位衡量的到相机的距离。

Paste_Image.png

Paste_Image.png
摄像机属性:
Paste_Image.png

***Clear Flags ***
清除标识:确定了屏幕哪些部分将被清除,方便多个摄像机画不同的游戏元素
Skybox
天空盒:这是默认设置。屏幕上的任何空的部分将显示当前相机的天空盒。如果当前的相机没有设置天空盒,它会默认在渲染设置(Render Settings )选择天空盒

Solid Color
纯色,屏幕上的空白部分将显示当前摄像机的背景色

Depth Only
深度相机,只渲染采集到的画面如果你想绘制一个玩家的枪,又不让它内部环境被裁剪,你会设置深度为0的相机绘制环境,和另一个深度为1的相机单独绘制武器。武器相机的清除标志(Clear Flags )应设置 为depth only。

Don't Clear 不清除此模式不清除颜色或深度缓存。每帧的渲染画面叠加在上一帧画面之上。

Paste_Image.png

Rendering Path
渲染路径 :定义什么绘制方法被用于相机的选项

Use Player Settings 使用玩家设置:在玩家设置(Player Settings.)相机使用哪个渲染路径。

Forward 正向渲染:所有对象每材质渲染只渲染一次,快速渲染

Deferred 延迟照明:所有物体将在无光照的环境渲染一次,然后在渲染队列尾部将物体的光照一起渲染出来。

Legacy Vertex Lit 顶点光照 :所有被这个相机渲染的物体都将渲染成Vertex-Lit物体。

Legacy Deferred : 旧的延迟光照

Paste_Image.png

Traget Texture
目标纹理:渲染纹理 (Render Texture)包含相机视图输出。这会使相机渲染在屏幕上的能力被禁止。可用于实现画中画或者画面特效

Occlusion Culling :
是否剔除物体背向摄像机的部分HDR:高动态光照渲染,启动相机高动态范围渲染功能。让场景更真实。

Paste_Image.png

Projection
Perrspective:透视:摄像机(Camera)将使物体和透视完好无损。

Orthographic 正交:标识正交相机模式,从相机的视图中删除所有的透视效果,最主要用在等距或2D游戏中。注意雾是在正交相机模式下渲染,因此可能不会如预期般出现

Vertex Lit:顶点光照####

这个Shader是Vertex-Lit,是最简单的Shader之一。这个Shader渲染代价是非常小的所有照射在该物体上的光源通过一次光能传递渲染完成并且只计算顶点光源。因为是Vertex-Lit,所以不会有任何基于像素渲染的效果,例如:Light Cookies,Normal Mapping和Shadows。这个Shader对模型的细分同样更加敏感,假如在很靠近立方体的地方放置一个点光源,并且应用这个Shader,这个光源只会在此角落进行计算

General shader performance 通常的着色器性能

Unlit:不发光。这只是一个纹理,不被任何光照影响VertexLit. 顶点光照

Diffuse. 漫反射

Normal mapped. �法线贴图,比漫反射更昂贵:增加了一个或更多纹理(法线贴图)和几个着色器结构

Specular.:�高光。这增加了特殊的高光计算

Normal Mapped Specular:高光法线贴图。这比高光更昂贵一点

Parallax Normal mapped: �视差法线贴图。这增加了视差法线贴图计算

Parallax Normal Mapped Specular..�视差高光法线贴图。这增加了视差法线贴图和镜面高光计算

二、射线

射线:射线是3D世界中一个点向一个方向发射的一条无终点的线,在发射轨迹中与其他物体发生碰撞时,它将停止发射 。

用途:射线应用范围比较广, 多用于碰撞检测(如:子弹飞行是否击中目标)、角色移动等 等。


Paste_Image.png
Paste_Image.png

API:
1、Ray Camera.main.ScreenPointToRay(Vector3 pos) 返回一条射线Ray从摄像机到屏幕指定一个点

2、Ray Camera.main.ViewportPointToRay(Vector3 pos) 返回一条射线Ray从摄像机到视口(视口之外无效)指定一个点

3、Ray 射线类

4、RaycastHit 光线投射碰撞信息

5、bool Physics.Raycast(Vector3 origin, Vector3 direction, float distance, int layerMask)
当光线投射与任何碰撞器交叉时为真,否则为假。

bool  Physics.Raycast(Ray ray, Vector3 direction, RaycastHit out hit, float distance, int layerMask)
在场景中投下可与所有碰撞器碰撞的一条光线,并返回碰撞的细节信息()。

bool  Physics.Raycast(Ray ray, float distance, int layerMask)
当光线投射与任何碰撞器交叉时为真,否则为假。

bool  Physics.Raycast(Vector3 origin, Vector3 direction, RaycastHit out hit,float distance, int layerMask)
当光线投射与任何碰撞器交叉时为真,否则为假

注意:如果从一个球型体的内部到外部用光线投射,返回为假。

origin : 在世界坐标中射线的起始点

direction: 射线的方向

distance: 射线的长度

hit: 使用c#中out关键字传入一个空的碰撞信息类,然后碰撞后赋值。可以得到碰撞物体的transform,rigidbody,point等信息。

layerMask: 只选定Layermask层内的碰撞器,其它层内碰撞器忽略。 选择性的碰撞

6、RaycastHit[] RaycastAll(Ray ray, float distance, int layerMask)
投射一条光线并返回所有碰撞,也就是投射光线并返回一个RaycastHit[]结构体。

物体怎么向前方发射一条射线

// 从自身坐标到世界坐标变换方向。
// 变换方向x, y, z从自身坐标到世界坐标。
Vector3 fwd = transform.TransformDirection(Vector3.forward);

if (Physics.Raycast(transform.position, fwd,out hit,1))
Debug.DrawLine(transform.position,hit.point,Color.red);

其中,Physics.Raycast(transform.position, fwd,out hit,1)为发射射线函数,transform.position为射线原点,fwd为发射方向,1为距离。

如果前方有碰撞体,则发射射线。
Paste_Image.png

三、常用类Playerprefs

静态方法�SetFloat(),SetInt(),SetString() 写入数据�GetFloat(),GetInt(),GetString() 读取数据�DeleteKey(),DeleteAll() 删除数据�HasKey(“SS”), 检查数据,是否有该键�Save()

public string Name
{
get{
return PlayerPrefs.GetString(“Name”);
}
set{
PlayerPrefs.SetString(“Name”,value);
PlayerPrefs.Save();
}
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容

  • 111. [动画系统]如何将其他类型的动画转换成关键帧动画? 动画->点缓存->关键帧 112. [动画]Unit...
    胤醚貔貅阅读 12,943评论 3 90
  • 更新:【面试题含答案】http://bbs.9ria.com/thread-288394-1-1.html 高频问...
    好怕怕阅读 4,716评论 3 52
  • 原文地址 http://www.fx114.net/qa-75-172454.aspx 使用Profiler工具...
    IongX阅读 5,822评论 1 11
  • 这个是我刚刚整理出的Unity面试题,为了帮助大家面试,同时帮助大家更好地复习Unity知识点,如果大家发现有什么...
    dingz阅读 590评论 0 0
  • 文:赵欣,两岁男孩的妈妈,正面管教家长讲师。—————— 这是我分享的第9本关于家庭教育的书。 你可能会好奇,为什...
    赵欣Ella阅读 291评论 1 1