Unity3D判断当前所在平台

转自:http://www.cnblogs.com/wugang/p/3708569.html


Unity3D是一个跨平台的开发工具,支持的平台五花八门,常常开发一款游戏要发布到不同的平台,在不同的平台上会使用不同的代码,难道要我们各平台分别使用一套代码,单独编译一次吗?当然不用了,呵呵。
    Unity3D有一个功能叫平台依赖编译(Platform Dependent Compilation),它可以让我们简单地使用if...else...对不同平台的代码进行区分,当我们切换一个发布平台重新编译时,Unity3D使用自动编译相应代码,从而省去了繁琐的操作。
    下边举一个例子:

复制代码
function Awake() {
    #if UNITY_ANDROID
        Debug.Log("这里是安卓设备^_^");
    #endif
 
    #if UNITY_IPHONE
        Debug.Log("这里是苹果设备>_<");
    #endif
 
    #if UNITY_STANDALONE_WIN
        Debug.Log("我是从Windows的电脑上运行的T_T");
    #endif        
}
复制代码

 

那么其它的平台怎么判断呢?请见官方手册
    要提醒一下的是,手册里还有对Unity3D版本的判断方法,和上边一样的方法哦!
    另外Application.isEditor 和Application.isWebPlayer 也可以判断程序是否是在Unity3D IDE里运行,或者是否在WebPlayer里运行的。

### 使用 Shader Graph 创建光晕效果 在 Unity 中通过 Shader Graph 实现光晕效果可以分为几个部分来考虑。首先是创建一个新的 Unlit 类型的 Shader Graph[^1],因为光晕通常不需要复杂的光照计算。 #### 设置项目资源 为了实现良好的光晕效果,准备一张带有 Alpha 通道的光晕贴图是非常重要的。这张图片定义了光晕的具体形态和透明度变化规律,在后期处理过程中起到关键作用[^3]。 #### 构建 Shader Graph 节点结构 打开 Shader Editor 后,拖拽必要的节点进入工作区: - **Texture2D**: 加载之前准备好的光晕纹理。 - **Screen Position**: 获取当前像素所在屏幕空间的位置信息以便后续操作。 - **UV Transform**: 对输入 UV 进行变换以适应不同的场景需求。 - **Branch (if)**: 判断条件用于控制哪些区域显示光晕。 - **Lerp 或者 Saturate**: 平滑过渡光晕强度。 - **Output Master Node**: 将最终颜色输出给渲染管线。 连接这些节点形成合理的数据流路径,并调整各参数直至满意为止。对于想要应用于特定对象上的局部光晕,则可以通过修改顶点位置或者利用法线向量来进行微调[^2]。 #### 控制渲染特性 为了让光晕能够正确地叠加于其他图形之上而不受遮挡影响,需设置合适的渲染队列。一般情况下会把此类特殊效果放置在 `Transparent` 队列之后甚至更高优先级如 `Overlay` 来确保其总是最后被绘制出来[^4]。 ```csharp // C#脚本中指定Material属性 material.renderQueue = 4000; ``` 此外关闭深度写入 (`ZWrite Off`) 可防止光晕干扰正常的深度缓冲管理;而开启混合模式则允许它与其他半透明表面正常交互。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值