如何使Unity+vuforia做出来的模型导入到Android手机中能够实现阴影效果
2016-07-25 10:48
701 查看
直接用Unity+Vuforia是没有阴影效果的,因为要使用AR效果就要用到ARCamera,但是ARCamera有bug导致阴影出现不了,当然我们会有解决方法
首先,当然是先将灯光弄好,为阴影的出现打下基础,然后将下面这段代码扔给ARcamera就行啦
using UnityEngine;using System.Collections;
using Vuforia;
public class FixProjectionMatrix : MonoBehaviour, IVideoBackgroundEventHandler
{
private Camera[] mCameras;
// Use this for initialization
void Start()
{
mCameras = VuforiaBehaviour.Instance.GetComponentsInChildren<Camera>();
VuforiaBehaviour.Instance.RegisterVideoBgEventHandler(this);
}
// Update is called once per frame
void Update()
{
}
public void OnVideoBackgroundConfigChanged()
{
foreach (var cam in mCameras)
{
var projMatrix = cam.projectionMatrix;
for (int i = 0; i < 16; i++)
{
if (System.Math.Abs(projMatrix[i]) < 1e-6)
{
projMatrix[i] = 0.0f;
}
}
cam.projectionMatrix = projMatrix;
}
}
}
还没解决?接着看
一、看你的Light是否正确,Shdow Type默认是No Shadow的,有没有选择为Hard Shadows,当然Soft Shadow也是可以,但是性能消耗比较大,而且一些手机可能不支持,查看Strength是不是太弱了,调的太低也会出现看不到阴影的现象。
二、在Unity3D中,Camera离物体近时阴影能显现,远一点就看不到了(或者干脆一开始就看不到),可能是你阴影的可视距离没有调整好,在Edit 》ProjectSettings 》Quality 》Shadow Distance调整即可
三、以上是在Unity中显示阴影,但如果导出到手机上发现竟然阴影又不见了呢?
(1)同样是打开在Edit 》ProjectSettings 》Quality ,看红框部分,绿色钩钩的是你生成到对应平台使用的QualitySetting,因此不仅在Light中要选择Shadow Type的类型,还要看你生成到Android的Levels,这里的Shadows有没有选呢~~~
(2)还不行?到Edit 》Project Settings 》Player,看Rendering Path是不是Forward,还有不要勾选Use Direct3D 11,因为有一些手机是不支持的,当然如果你使用的是Unity5.4等的版本的话,你选择Direct3D9也是可以的
相关文章推荐
- unity实现多点触控代码
- 在Unity中实现动画的正反播放代码
- Unity UGUI教程之实现滑页效果
- unity实现摄像头跟随
- Unity3D上路_01-2D太空射击游戏
- Unity3D上路_02-第一视角射击游戏
- Unity3D上路_03-塔防游戏
- Unity3D上路_04-基础资源介绍
- Unity3D上路_05-网络相关
- Unity3D-5.3.5发布VR项目到Android
- unity 新UI草稿
- Vuforia在iOS上的再封装
- 任天堂这款“上街抓皮卡丘”的游戏引爆了互联网,它能带火AR游戏吗?
- 终极科普帖!VR、AR、MR、CR 管他什么R
- [软件资讯]Unity已支持将3D游戏导出成Flash
- ShaderLab: Pass
- Unity 武器拖尾效果
- 苹果、微软、Google的下一战:未来智能眼镜