• unity3d NGUI制作角色展示框


    最近在搞赛车漂移,所以一直没有更新博客

    现在已经实现圈数检测、复位点检测、反向检测等功能

    本来准备写成三篇文章的,太忙了,等过段时间不忙了在写吧

    今天有朋友问我3D角色怎么给他固定在一个框里面

    这个功能前段时间也本来准备写的,太忙了,所以也没有写。。。。

    正好朋友问,那就先写一篇吧

    先上效果图:

    请无视我骚气的昵称吧!哈哈

    从上图中可以看见我的翅膀没有超出边界框,而是被边界框覆盖了

    相信看过我前几篇文章的朋友应该知道怎么实现的

    没错,这里用到了层

    那么问题来了,光用一个层能搞定3D角色固定在框里面?

    那肯定是不行的呀!听我一一道来

    先新建一个层:player

    在新建一个camera,参数设置如下:

    ok,现在我们拖入角色模型,然后将模型transform参数重置

    模型位置:AssetsNGUIExamplesModelsOrcOrc.prefab

    当然如果你自己有模型的话就用你自己的模型

    我们将角色的层设置为Player,这时候你会发现角色突然变大了

    选中刚才创建的camera,随便拖动Viewport rece的四个参数中的任意一个

    你会发现相机会的大小会随之而改变

    我们可以手动慢慢调节到适合模型的大小,但是这样实在是太费劲了,不是吗?

    我当然有更好的方法,这个方法放在本文最后说

    我们现在开始制作角色显示底框,用NGUI创建2DCamera

    然后做一个底框:创建一个UISprite,随便选个方形图就行

    如下图:

    细心的小伙伴会发现“咦,不是用了层嘛,怎么角色被UI遮挡住了?”

    我们检查一下UICamera和playerCamera的Depth

    soga,我们刚才先设置了,那我们改下,把UICamera的Depth改为0

    哦了,现在角色显示在框框前面了

    现在我们在刚才创建的Sprite下创建两个空物体,并且reset

    分别取名为topLeft和bottomRight

    然后两个都要添加UIAnchor脚本

    UI Camera设置的就是UI的相机,直接拖上去就行

    Container设置为Sprite

    side对应空物体的名称,topLeft和bottomRight

    这个地方其实很简单,不懂的看下图:

    设置完以后你会发现空物体的坐标改变了!

    现在我们进行最后一个步骤,选择playerCamera,添加UIViewport脚本

    source camera他自动帮你设置好了,如果没有,你可以设置我UIcamera

    将刚才创建的两个空物体拖到对应的参数上

    看看我们的场景,是不是已经成功把3D角色固定在框框里了?

    更本就不用手动设置Viewport Rece,那样要累死人啊

    我们的角色显示貌似有点不对,调节一下Full Size和plaer的坐标

    怎么样,这个功能是不是很酷炫呢

    没加光照有些黑!

    如果你还要继续在面板上加UI的话,你就必须要重新添加一个camera了

    所以我的角色展示框是单独写出来的,如果都写成一堆看起来真够累的

    好了,继续研究我的漂移去了

    本文链接:http://www.cnblogs.com/shenggege/p/4284241.html

  • 相关阅读:
    ld -l选项注意事项
    linux下创建用户(转)
    delete void *
    __attribute__机制介绍(转)
    正常断开连接情况下,判断非阻塞模式socket连接是否断开
    std::thread “terminate called without an active exception”
    Android 开发手记二 C可执行程序编译实例(转帖)
    c++11 on Android
    由一段小程序看算法复杂度
    Linux守护进程的编程实现(转)
  • 原文地址:https://www.cnblogs.com/shenggege/p/4284241.html
Copyright © 2020-2023  润新知