반응형
< juggling 만들기 >
1. 공 한 개 정글링 ( 위아래 움직임만 반영 )
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Leap;
using Leap.Unity;
public class j : MonoBehaviour
{
Frame frame;
Controller controller;
GameObject ball,R1;
Rigidbody rigid,rh;
public GameObject R,L;
public bool oneHand;
public bool twoHand;
bool a = false;
Vector v,vr;
// Start is called before the first frame update
void Start()
{
controller = new Controller();
ball = GameObject.Find("ball");
rigid = ball.GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update()
{
Hand hand, thand;
frame = controller.Frame();
if (frame != null && frame.Hands.Count >= 1)
{
hand = frame.Hands[0];
thand = frame.Hands[1];
rigid.useGravity = true;
float grab = hand.GrabStrength;
Vector yaw = hand.PalmNormal;
if (a==false && yaw.x > 0 && yaw.y>0 && yaw.z>0)
{
if(hand.IsRight == true)
{
ball.transform.position = new Vector3(L.transform.position.x, L.transform.position.y + 0.1f, L.transform.position.z);
}
else
{
ball.transform.position = new Vector3(R.transform.position.x, R.transform.position.y + 0.1f, R.transform.position.z);
}
v = hand.PalmVelocity;
if (v.y > 100 && v.x>50 && v.z>50)
{
vr.x = v.x;
vr.y = v.y;
vr.z = v.z;
a = true;
ball.GetComponent<Rigidbody>().AddForce(new Vector3(0, vr.y * 0.4f, 0), ForceMode.Force);
}
}
if(grab == 1)
a = false;
}
}
}
기본적으로 공과 손에 대한 충돌처리 존재 -> 이 때문에 공을 쥐면 가만히 잡혀 있는 것이 아니라 튕겨 나가거나 굴려서 빠져나감 -> 공 생성 직전에는 위치를 고정 시켜 줌.
손바닥을 위로하여 쥐고 피면 공이 다시 생기게 설정 -> 손이 가리키는 방향의 노말 벡터를 이용( palmnormal )
손의 Y축 가속도를 이용하여 공에 물리적 힘을 가해 줌. ( 이때 : 위아래만 움직이는 공을 실험 )
결과 동영상 : https://youtu.be/IM2XZNHrSaY
결과동영상 : https://youtu.be/9zIk_AREHv8
문제점 : 중간에 제대로 공이 날라가지 않는 문제 -> 손을 쥘 때 공이 다시 생성되게 하였는데 이때 공을 던진 상태에서 애매한 손을 쥘 때로 인식하여 공을 다시 가져오는 문제
고려할 점 1. 거리가 멀다고 공이 떨어졌다고 볼 수 없음. (높게 위로 던진 경우도 고려) -> 거리로 판단 X
이를 해결하기 위한 방법 1. 공의 y위치보다 손의 y축 위치가 크면 공이 손에서 떨어졌음 인식 가능
반응형
'Project' 카테고리의 다른 글
[unity + leap motion project] 립모션 제스처 만들기 프로젝트 5번째 정리 (2) | 2020.04.20 |
---|---|
[unity + leap motion project] 립모션 제스처 만들기 프로젝트 4번째 정리 (0) | 2020.03.25 |
[unity + leap motion project] 립모션 제스처 만들기 프로젝트 2번째 정리 (9) | 2020.03.17 |
[unity + leap motion project] 립모션 제스처 만들기 프로젝트 1번째 정리 (1) | 2020.03.16 |
[3D MAX] 2019-1 3D 모델링 프로젝트 (0) | 2020.03.14 |
댓글