ADD, Fix : 룰렛 추가 및 옵티트랙 재접속 체크 기능 추가
This commit is contained in:
parent
23e8d85a9e
commit
8cbc4942f3
@ -1,4 +1,4 @@
|
||||
/*
|
||||
/*
|
||||
Copyright © 2016 NaturalPoint Inc.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@ -15,6 +15,7 @@ limitations under the License.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using KindRetargeting;
|
||||
using UnityEngine;
|
||||
|
||||
@ -38,6 +39,8 @@ public class OptitrackRigidBody : MonoBehaviour
|
||||
private bool m_isRigidBodyFound = false;
|
||||
private int m_resolvedRigidBodyId = -1;
|
||||
|
||||
private const float k_RetryInterval = 1.0f;
|
||||
|
||||
public bool isRigidBodyFound
|
||||
{
|
||||
get { return m_isRigidBodyFound; }
|
||||
@ -52,22 +55,52 @@ public class OptitrackRigidBody : MonoBehaviour
|
||||
return;
|
||||
}
|
||||
|
||||
// Resolve prop name to ID if provided
|
||||
TryResolveRigidBody();
|
||||
|
||||
// 초기 해결 실패 시 주기적으로 재시도
|
||||
if (m_resolvedRigidBodyId == -1 && !string.IsNullOrEmpty(propName))
|
||||
{
|
||||
StartCoroutine(RetryResolveCoroutine());
|
||||
}
|
||||
}
|
||||
|
||||
private void TryResolveRigidBody()
|
||||
{
|
||||
if (!string.IsNullOrEmpty(propName))
|
||||
{
|
||||
m_resolvedRigidBodyId = m_streamingClient.GetRigidBodyIdByName(propName);
|
||||
if (m_resolvedRigidBodyId == -1)
|
||||
int resolved = m_streamingClient.GetRigidBodyIdByName(propName);
|
||||
if (resolved != -1)
|
||||
{
|
||||
Debug.LogWarning($"OptitrackRigidBody: Could not find rigid body with name '{propName}'", this);
|
||||
return;
|
||||
m_resolvedRigidBodyId = resolved;
|
||||
m_streamingClient.RegisterRigidBody(this, m_resolvedRigidBodyId);
|
||||
Debug.Log($"OptitrackRigidBody: '{propName}' 해결 완료 (ID: {m_resolvedRigidBodyId})", this);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_resolvedRigidBodyId = rigidBodyId;
|
||||
m_streamingClient.RegisterRigidBody(this, m_resolvedRigidBodyId);
|
||||
}
|
||||
}
|
||||
|
||||
m_streamingClient.RegisterRigidBody(this, m_resolvedRigidBodyId);
|
||||
private IEnumerator RetryResolveCoroutine()
|
||||
{
|
||||
var wait = new WaitForSeconds(k_RetryInterval);
|
||||
|
||||
while (m_resolvedRigidBodyId == -1)
|
||||
{
|
||||
yield return wait;
|
||||
|
||||
if (m_streamingClient == null) yield break;
|
||||
|
||||
// 서버에 정의 재조회 요청
|
||||
m_streamingClient.RequestDefinitionRefresh();
|
||||
|
||||
// 다음 프레임까지 대기 (정의 갱신이 Update에서 처리되므로)
|
||||
yield return null;
|
||||
|
||||
TryResolveRigidBody();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -423,7 +423,9 @@ public class OptitrackSkeletonAnimator_Mingle : MonoBehaviour
|
||||
}
|
||||
else
|
||||
{
|
||||
// 스켈레톤 정의를 찾지 못함 → 서버에 정의 재조회 요청
|
||||
isSkeletonFound = false;
|
||||
StreamingClient.RequestDefinitionRefresh();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -407,6 +407,16 @@ public class OptitrackStreamingClient : MonoBehaviour
|
||||
#endregion Private fields
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 외부에서 정의 재조회를 요청합니다. 쿨다운(5초) 내에는 무시됩니다.
|
||||
/// OptitrackRigidBody, OptitrackSkeletonAnimator_Mingle 등에서 에셋을 찾지 못할 때 호출.
|
||||
/// </summary>
|
||||
public void RequestDefinitionRefresh()
|
||||
{
|
||||
m_pendingDefinitionRefresh = true;
|
||||
}
|
||||
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (DrawMarkers)
|
||||
|
||||
8
Assets/ResourcesData/Prop/룰렛.meta
Normal file
8
Assets/ResourcesData/Prop/룰렛.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 03f20b4b1a3b7ca4f936e7c7327f34f9
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/ResourcesData/Prop/룰렛/Model.meta
Normal file
8
Assets/ResourcesData/Prop/룰렛/Model.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cc24f6684e9427e44a37e8b81571cd06
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/ResourcesData/Prop/룰렛/Model/룰렛.Materials.meta
Normal file
8
Assets/ResourcesData/Prop/룰렛/Model/룰렛.Materials.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0473572383f8cbe4789079d1aa73eea0
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
1191
Assets/ResourcesData/Prop/룰렛/Model/룰렛.Materials/Pointer_Red.mat
Normal file
1191
Assets/ResourcesData/Prop/룰렛/Model/룰렛.Materials/Pointer_Red.mat
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ebc936fce7f753a4f918824c524fa3d3
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dcb4818cb33532143a7fb252cb0a4a99
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8b1daf11de0b3a44ab84113404550392
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
1190
Assets/ResourcesData/Prop/룰렛/Model/룰렛.Materials/Roulette Wheel.mat
Normal file
1190
Assets/ResourcesData/Prop/룰렛/Model/룰렛.Materials/Roulette Wheel.mat
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 16da4850ff1532043810de6a076cb1fb
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/ResourcesData/Prop/룰렛/Model/룰렛.Textures.meta
Normal file
8
Assets/ResourcesData/Prop/룰렛/Model/룰렛.Textures.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a25c7d631daa2df469f82586c330f928
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/ResourcesData/Prop/룰렛/Model/룰렛.Textures/18580651-룰렛.jpg
(Stored with Git LFS)
Normal file
BIN
Assets/ResourcesData/Prop/룰렛/Model/룰렛.Textures/18580651-룰렛.jpg
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -0,0 +1,117 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1baa2412aac486f46b745aa50792c73e
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/ResourcesData/Prop/룰렛/Model/룰렛.glb
(Stored with Git LFS)
Normal file
BIN
Assets/ResourcesData/Prop/룰렛/Model/룰렛.glb
(Stored with Git LFS)
Normal file
Binary file not shown.
32
Assets/ResourcesData/Prop/룰렛/Model/룰렛.glb.meta
Normal file
32
Assets/ResourcesData/Prop/룰렛/Model/룰렛.glb.meta
Normal file
@ -0,0 +1,32 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 20b9877f0f6818b419fc71877220b519
|
||||
ScriptedImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects:
|
||||
- first:
|
||||
type: UnityEngine:Material
|
||||
assembly: UnityEngine.CoreModule
|
||||
name: Pointer_Red
|
||||
second: {fileID: 2100000, guid: ebc936fce7f753a4f918824c524fa3d3, type: 2}
|
||||
- first:
|
||||
type: UnityEngine:Material
|
||||
assembly: UnityEngine.CoreModule
|
||||
name: Roulette Base Black
|
||||
second: {fileID: 2100000, guid: dcb4818cb33532143a7fb252cb0a4a99, type: 2}
|
||||
- first:
|
||||
type: UnityEngine:Material
|
||||
assembly: UnityEngine.CoreModule
|
||||
name: Roulette Wheel
|
||||
second: {fileID: 2100000, guid: 16da4850ff1532043810de6a076cb1fb, type: 2}
|
||||
- first:
|
||||
type: UnityEngine:Material
|
||||
assembly: UnityEngine.CoreModule
|
||||
name: Roulette Wheel Screen
|
||||
second: {fileID: 2100000, guid: 8b1daf11de0b3a44ab84113404550392, type: 2}
|
||||
serializedVersion: 2
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
script: {fileID: 11500000, guid: cc45016b844e7624dae3aec10fb443ea, type: 3}
|
||||
reverseAxis: 2
|
||||
renderPipeline: 1
|
||||
8
Assets/ResourcesData/Prop/룰렛/Prefab.meta
Normal file
8
Assets/ResourcesData/Prop/룰렛/Prefab.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 52c585c0af2f2a14e9ed7354f2d76d65
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/ResourcesData/Prop/룰렛/Prefab/룰렛.prefab
(Stored with Git LFS)
Normal file
BIN
Assets/ResourcesData/Prop/룰렛/Prefab/룰렛.prefab
(Stored with Git LFS)
Normal file
Binary file not shown.
7
Assets/ResourcesData/Prop/룰렛/Prefab/룰렛.prefab.meta
Normal file
7
Assets/ResourcesData/Prop/룰렛/Prefab/룰렛.prefab.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e9aea7ab94b7c154599344bebd806c2b
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Loading…
x
Reference in New Issue
Block a user