VRTK射线射中物体给物体描边

  1. :将需要进行描边的物体上加上VRTK_OutlineObjectCopyHighlighter组件。
  2. 创建射线监听脚本.
 public VRTK_Pointer leftContrlPointer;//拿到pointe组件
//注册射线事件
   protected virtual void OnEnable()
        {
            pointer = (pointer == null ? GetComponent<VRTK_DestinationMarker>() : pointer);

            if (pointer != null)
            {
                pointer.DestinationMarkerEnter += DestinationMarkerEnter;
                pointer.DestinationMarkerHover += DestinationMarkerHover;
                pointer.DestinationMarkerExit += DestinationMarkerExit;
                //当目标标记在场景中活动时发出,以确定最后的目的地位置(用于选择和传送)
                pointer.DestinationMarkerSet += DestinationMarkerSet;
            }
            else
            {
                VRTK_Logger.Error(VRTK_Logger.GetCommonMessage(VRTK_Logger.CommonMessageKeys.REQUIRED_COMPONENT_MISSING_FROM_GAMEOBJECT, "VRTKExample_PointerObjectHighlighterActivator", "VRTK_DestinationMarker", "the Controller Alias"));
            }
        }
//移除事件
     protected virtual void OnDisable()
        {
            if (pointer != null)
            {
                pointer.DestinationMarkerEnter -= DestinationMarkerEnter;
                pointer.DestinationMarkerHover -= DestinationMarkerHover;
                pointer.DestinationMarkerExit -= DestinationMarkerExit;
                pointer.DestinationMarkerSet -= DestinationMarkerSet;
            }
        }

设置模型高亮描边方法:

        /// 模型高亮
        /// </summary>
        /// <param name="target"></param>
        /// <param name="color"></param>
        public void HighLight(Transform target,Color color)
        {
            VRTK_BaseHighlighter highlighter=target != null ? target.GetComponent<VRTK_BaseHighlighter>() : null;
            if (highlighter!=null)
            {
                highlighter.Initialise();
                if (color!=Color.clear)
                {
                    highlighter.Highlight(color);
                }
                else
                {
                    highlighter.Unhighlight();
                }
            }
        }
        
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
你好!要在Shader Graph中实现物体描边效果,可以尝试以下步骤: 1. 创建一个新的Shader Graph。 2. 添加一个Unlit Master节点作为主节点。 3. 添加一个Sprite节点,并将其连接到Unlit Master节点的Albedo输入。 4. 在Shader Graph中创建一个新的Sub Graph。 5. 在Sub Graph中创建一个Custom Function节点,命名为"Outline"。 6. 将Custom Function节点连接到Sub Graph的输出节点。 7. 在Custom Function节点中,添加一个Input节点,命名为"Alpha",用于控制描边的强度。 8. 添加一个Sample Texture 2D节点,用于采样纹理。 9. 将Sample Texture 2D节点的输出连接到Custom Function节点的输出。 10. 添加一个Sample Gradient节点,用于采样渐变纹理。 11. 将Sample Gradient节点的输出连接到Custom Function节点的输出。 12. 在Custom Function节点中,使用Alpha输入和采样的纹理和渐变纹理来计算描边效果。 13. 返回到主Shader Graph,将Sub Graph节点连接到Unlit Master节点的Alpha输入。 14. 在主Shader Graph中创建一个Multiply节点,并将其连接到Sub Graph节点的输出。 15. 将Multiply节点的另一个输入连接到Unlit Master节点的Alpha输入。 16. 将Multiply节点的输出连接到Unlit Master节点的Alpha输入。 这样,你就可以在Shader Graph中实现物体描边效果。你可以根据需要调整描边的强度和样式,例如修改渐变纹理或自定义描边的计算方式。希望对你有帮助!如果有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChengDengKe

观众大佬赏杯咖啡叭~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值