相机&渲染设置

创建动画混合树

图片说明

  • 在nave mesh agent中获得速度speed传递给混合树中的参数
  • sqrMagnitude:将一个vector3 转化为浮点值
    anim.SetFloat("Speed", agent.velocity.sqrMagnitude);

遮挡剔除

  • 当人物被障碍物挡住的时候我们希望看到角色的轮廓,先创建一个Unlit shader graph并保存
    图片说明

  • 用该shader创建一个material
    图片说明

  • 在URP渲染管线中添加render feature,在角色被遮挡(处于更深层的后方时)用新的shader替换原有的shader,所以此处勾选Depth深度并选择greater,注意需要将filter过滤器设置为角色所在图层
    图片说明

  • 同时我们希望角色不被遮挡时使用原有的shader
    图片说明

  • 最后效果如下
    图片说明

射线屏蔽

  • 我们希望点击树木时能移动到点击位置的地面,而不是射线与树木碰撞造成无效点击,这里有两个解决办法

    方法一:将所有树木图层设置为无视射线

    图片说明

    方法二:取消勾选树木的coliider

    图片说明

transform.LookAt

  • 将物体的朝向转向另一个物体

Animator设置

  • Exit Time指退出时间,即动画播放多久后退出该动画,没有退出时间则一直循环播放
  • Fixed Duration指两种动画间的过渡效果
    图片说明
  • 添加新的layer区分不同的逻辑层
    图片说明
  • weight指权重,blending有override(覆盖)和additive(叠加)两种
    图片说明

CinemaMachineFreeLook

  • 一种自由视角的相机
    图片说明
  • 缩放和旋转视角由鼠标滚轮和键盘AD控制
    图片说明
  • 调整相机类型和滑动范围
    图片说明
  • 选中save during play可以在运行中实时修改参数并保存
    图片说明

Physics.OverlapSphere

  • 返回一个数组,其中包含与球体接触或位于球体内部的所有碰撞体
  • 注意:物体需要有collider组件才能被检测到
    bool FoundPlayer()
      {
          var colliders = Physics.OverlapSphere(transform.position,sightRadius);
          foreach (var targrt in colliders)
          {
              if (targrt.CompareTag("Player"))
              {
                  return true;
              }
          }
          return false;
      }
全部评论

相关推荐

点赞 评论 收藏
分享
04-28 11:34
西北大学 运营
牛客4396号:不好意思,这个照片猛一看像丁真
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务