美文网首页UnityUnity3D
Unity项目Lost Crypt分析-3

Unity项目Lost Crypt分析-3

作者: 黑山老雕 | 来源:发表于2020-01-13 00:04 被阅读0次

    摇曳的树木 Vegetation_Wind_Lit Shader

    貌似所有摇曳的树木都是基于这个shader。
    首先,根据时间的变化,结合世界坐标系,可以创建出一个随时间变化的坐标,将它作为UV给生成的噪声。得到移动的噪声图像。
    然后噪声与Calculate Vertex Offset Influence Mask (Based on Sprite's Height)相结合,控制在顶端的位移更大,在底部的位移更小。然后作为位移偏移量,加到现有的UV位置上。这里注意用Clamp把值做修改。
    颜色方面,在基础色上与边缘颜色相加。而边缘颜色是通过对Mask Texture的绿色通道与Rim颜色相乘得到。
    这里我也看不太明白,不知道这个Mask Texture是如何生成的。它的绿色通道就包含了所有边缘的信息。
    如果我做的话,可能我会直接在PS中魔棒工具找到边界之后羽化选取。。。
    但是不知道有没有什么牛掰的方法直接生成这个图?有知道的大神麻烦指点一下。

    image.png

    Node Attach

    这个脚本用于把物体附着到Sprite Shape的特定点,然后每当Sprite Shape的曲线发生变化,物体也会随之位移。不过我看似乎只有一个树的这个脚本是激活的,其他基本都是disable的状态。貌似并没有起特别大的作用。

    地面

    在某个Grass上添加了Edge Collider作为地面


    image.png

    Rigidbody 2D

    重新再读一下Rigidbody 2D的文档。

    • Rigidbody2D override了Transform,所以我理解对于有RigidBody的物体,在移动的时候最好移动其Rigidbody而不是直接去操作Transform?
    • 附加到同一个Rigidbody(或者它的子物体)的Collider2d都附着在同一个rigidbody上。这些collider自身之间不会碰撞。它们随Rigidbody一起移动。
    • Rigidbody只是把物体纳入物理体系,让它可以接受力。碰撞体产生碰撞,没有碰撞体的rigidbody不会产生碰撞。
    • Dynamic Rigidbody
      • 这是最常用的,也最消耗资源。
      • 不要直接去改变它的transform,而应该用力或者碰撞来操控
    • 运动学刚体
      • 运动学刚体不受力的影响,通常用来控制物体运行。用MovePosition和MoveRotation来控制运动。
      • 运动学刚体消耗资源更少。
      • 运动学刚体仍然可以用速度控制
      • 它只跟Dynamic刚体发生碰撞,不与其他静态或者运动学刚体碰撞。
      • 当碰撞时,它不会被撞动。类似于Static。
      • 如果激活Use Full Kinematic Contacts选项,那么它可以和其他类型的刚体碰撞(static和Dynamic和运动学),表现起来像Dynamic,只是它不会被撞动。如果不用这个,它只会和Dynamic碰撞,对于其他的来讲,OnCollisionEnter等callback不会触发。(与Static相撞时,trigger collider是个例外)
    • 静态刚体
      • 撞不动。消耗资源最少。
      • 只有Collider2D的物体默认有一个隐藏的静态刚体。
      • 移动一组Collider2D会消耗很多性能,把它们附着到一个显式的静态刚体,在移动的时候或者重新配置的时候性能会比较好。
    • Simulated属性,应该用这个属性来启用/禁用刚体,性能优于enable/disabled

    相关文章

      网友评论

        本文标题:Unity项目Lost Crypt分析-3

        本文链接:https://www.haomeiwen.com/subject/psuwactx.html