티스토리 뷰
게임 프로그래밍 ( 이제 안함 )/일에 대한 끄적끄적
Final IK - VRIKAvatarScaleCalibrationSteamVR.cs 주석 작성
Nerd_Lee 2019. 11. 14. 14:10반응형
이 글은 절대 정확한 주석이 아닙니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using RootMotion.FinalIK;
using Valve.VR;
namespace RootMotion.Demos
{
// scale을 보정하는 클래스
public class VRIKAvatarScaleCalibrationSteamVR : MonoBehaviour
{
public VRIK ik; // VRIK 클래스 변수
public float scaleMlp = 1f; // 조정해줄 스케일 값
public SteamVR_Action_Boolean grabPinch; // 어떤 버튼을 누르는 가를 확인하는 변수
public SteamVR_Input_Sources inputSource = SteamVR_Input_Sources.Any; // 어떤 컨트롤러에서 누르는가를 확인하는 변수. Any는, 모든 컨트롤러를 뜻함.
private bool calibrateFlag; // 켈리브레이트를 실행할 지 안할 지의 대한 bool값 변수.
void OnEnable()
{
if (grabPinch != null) // grabPinch가 정의가 되어있다면
{
grabPinch.AddOnChangeListener(OnTriggerPressedOrReleased, inputSource); // 게임오브젝트가 켜지면, grabPinch에 Listener를 교체한다. OnTriggerPressedOrReleased 함수와, inputSource를 함께 넘긴다.
}
}
private void OnDisable()
{
if (grabPinch != null) // grabPinch가 정의가 되어 있다면
{
grabPinch.RemoveOnChangeListener(OnTriggerPressedOrReleased, inputSource); // grabPinch의 리스너를 삭제한다. OnTriggerPressedOrReleased에 대한 이벤트를 삭제한다.
}
}
/// <summary>
/// grabPinch에 붙일 리스너 함수, Trigger버튼을 눌렀거나 땠을 때의 함수.
/// </summary>
/// <param name="fromAction">액션에 관련 된 매개변수. grabPinch와 같은 액션</param>
/// <param name="fromSource">컨트롤러 관련 변수</param>
/// <param name="newState">상태관련 변수</param>
private void OnTriggerPressedOrReleased(SteamVR_Action_Boolean fromAction, SteamVR_Input_Sources fromSource, bool newState)
{
// 트리거가 해제되었다면, 반환.
if (!newState)
{
return;
}
// SteamVR_Settings 파일에서 "입력 업데이트 모드"를 "OnLateUpdate"로 설정 한 경우에만 여기에서 직접 보정 할 수 있습니다. 라고 번역이 되는데. 그냥 trigger를 누르면, LateUpdate에서, calibrateFlag가 true라면, false로 만들고
// 해당 카메라의 위치에 따라, scale을 보정한다.
calibrateFlag = true;
}
// -0.143 , 0.158, -0.338
private void LateUpdate()
{
// LateUpdate에서, 보정이 완료되었는 지 확인한다?
if (!calibrateFlag)
{
return;
}
calibrateFlag = false;
// 머리 타겟의 높이와, root의 높이를 비교하고 그 값을 스케일링 한다.
float sizeF = (ik.solver.spine.headTarget.position.y - ik.references.root.position.y) / (ik.references.head.position.y - ik.references.root.position.y);
ik.references.root.localScale *= sizeF * scaleMlp;
}
}
}
반응형
'게임 프로그래밍 ( 이제 안함 ) > 일에 대한 끄적끄적' 카테고리의 다른 글
Final IK - VRIK.cs 주석 작성 (0) | 2019.11.14 |
---|---|
VR - Steam VR SteamVR_Behaviour_Pose.cs 주석 작성 ( 틀린부분은 말씀해주세요! ) (0) | 2019.11.05 |
VR - Steam VR UIElement 스크립트 주석달아보기 (0) | 2019.11.04 |
VR - Steam VR LaserPointer 스크립트 주석 달아보기 (0) | 2019.11.04 |
코드를 작성하다가 주석을 달아놓는게 좋을까? 아닐까? (0) | 2018.12.13 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- baseofcoding
- unity3d
- 뷰포리아
- spring boot
- Servlet
- 서블릿
- 프로그래밍
- VR
- 안드로이드
- 유니티로 배우는 C#
- 비지니스 로직
- Vuforia
- 유니티3D
- Base Of Coding
- Spring
- HTML
- GitHub
- 유니티
- 스프링
- MVC
- Controller
- Java
- 프리젠테이션 로직
- 게임프로그래밍
- Unity
- CSS
- c#
- Git
- Next.js
- JSP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함