Leap的Scene窗口中在手心发射线,但Game窗口中看不见射线

本篇博客介绍了一个在Unity中使用LeapMotion进行手部追踪的示例代码。通过LeapProvider组件获取当前固定帧的手部数据,分析手指数目、指尖距离及强度,实现手指触碰检测和射线绘制功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

using Leap;
using Leap.Unity;

// PlanA 	cube
//PlanB plamnormal

public class beam : MonoBehaviour {

	private LeapProvider mProvider;
	Frame mFrame;
	Hand mHand;

	//finger tip
	GameObject tip;

	// Use this for initialization
	void Start () {
		mProvider = FindObjectOfType<LeapProvider> () as LeapProvider;

		tip = GameObject.Find("tip");
	}

	// Update is called once per frame
	void Update () {


		mFrame = mProvider.CurrentFixedFrame;
		int numHands = mFrame.Hands.Count;

		if (numHands >0) {

			if (numHands == 1) {


				foreach (var itemFingers in mFrame.Hands) {
					int numF =	itemFingers.Fingers.Count;

					float dis =	itemFingers.PinchDistance;
					float disN = itemFingers.PinchStrength;

					if (dis < 50.0f || disN > 0.4f) {
						//pointer.transform.localScale = new Vector3 (0.000f, 0.000f, 10.0f);

					} else {

						//pointer.transform.localScale = new Vector3(0.0008f, 0.0008f, 10.0f);

						Ray ray = new Ray (transform.position, -transform.forward);
						//var point = Camera.main.ScreenToWorldPoint(Input.mousePosition);
						Debug.DrawLine(transform.position, -transform.forward*100,Color.red);  //这个就是绘制出的射线了,包含发射位置,发射距离和射线的颜色; 

						RaycastHit hit;


					}

				}

			}

			if (numHands == 2) {

				//print ("Find two hands");

			}
		}

	}
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值