HTC Vive 手柄发射射线功能

转载出处:http://www.manew.com/blog-7049-3768.html


先上截图,稍后补齐代码和详解。

[code]csharpcode:

/********************************************************************
 *
 *    Author:
 *      Data:
 *   Version:
 *  Function:
 *
 * *****************************************************************/
using UnityEngine;
using System.Collections;

public class RayTestCollder : MonoBehaviour
{
    [SerializeField]
    Transform rayPos;
    
    LineRenderer linerender;
	// Use this for initialization
	void Start ()
    {
        linerender = GetComponent<LineRenderer>();
	}
    RaycastHit hitInfo;
    // Update is called once per frame
    void Update ()
    {
        Ray ray = new Ray(rayPos.position,rayPos.forward);
        
        //Debug.DrawLine(ray.origin, hitInfo.point, Color.red, 2);//
        if (Physics.Raycast(ray,out hitInfo,1000))
        {
            GameObject gameobj = hitInfo.collider.gameObject;
            float distance = 0;
            if (gameobj != null)
            {
                distance = Vector3.Distance(transform.position, gameobj.transform.position);
            }
            else
            {
                distance = 1;
            }

            linerender.SetPosition(1, new Vector3(0, 0, distance));
        }
	}

    void OnTriggerEnter(Collider other)
    {
        if (other.gameObject != null)
        {
            //transform.gameObject.GetComponent<LineRenderer>().enabled = true;
            //transform.gameObject.GetComponent<BoxCollider>().enabled = true;

            //linerender.SetWidth(0, 1);
        }
    }
}

主要使用的组件和功能:LineRenderer+射线

个人感觉实现起来还算可以。

不足:射线顶端缺少标记点,想想后续会添加。也欢迎各位提出不同的实现方式互相学习!总体来说现在关于HTC开发这块的资料还是很少的。


  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值