Three.js: Object3D ν‘œμ‹œ / 숨기기?

에 λ§Œλ“  2011λ…„ 06μ›” 10일  Β·  14μ½”λ©˜νŠΈ  Β·  좜처: mrdoob/three.js

λ‚˜λŠ” μ–Έμ œλ“ μ§€ Object3D와 그의 아이듀을 μ–΄λ–»κ²Œ 보여 μ£Όκ±°λ‚˜ μˆ¨κΈ°λŠ” 지 μ•Œμ•„ λ‚΄λ €κ³  λ…Έλ ₯ν•©λ‹ˆλ‹€.

  • λ³΄μ΄λŠ” μ†μ„±μœΌλ‘œ?
  • μ ˆλ‘μ²΄μ—μ„œ λ²ˆμ—­ ν•˜μ‹œκ² μŠ΅λ‹ˆκΉŒ?
  • μ–΄λ–€ 생각?
Question

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

κ·Έλƒ₯ 호좜 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
myObj3D.visible = 거짓. 이것은 Object3D의 μžμ‹ 인 λͺ¨λ“  것을 μˆ¨κΈ°λŠ” κ²ƒμ²˜λŸΌ λ³΄μž…λ‹ˆλ‹€.

myObj3D.visible = true 호좜 λͺ¨λ“  것을 ν‘œμ‹œν•©λ‹ˆλ‹€.

λͺ¨λ“  14 λŒ“κΈ€

ν˜„μž¬ λ‹€μŒκ³Ό 같이 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

THREE.SceneUtils.traverseHierarchy( object, function ( object ) { object.visible = false; } );

감사! 맀λ ₯처럼 μž‘λ™ν•©λ‹ˆλ‹€.

참고둜-myObject3D의 λͺ¨λ“  μžμ‹μ„ 숨기렀면 μœ„μ˜ μ½”λ“œκ°€ λ‹€μŒκ³Ό κ°™μ•„μ•Όν•©λ‹ˆλ‹€.

myObject3D.traverse( function ( object ) { object.visible = false; } );

이 κΈ°λŠ₯은 아직 ν•΄κ²°λ˜μ§€ μ•Šμ€ 것 κ°™μŠ΅λ‹ˆλ‹€. 객체λ₯Ό 숨기고 μ‹Άμ§€λ§Œ (λͺ¨λ“  μžμ‹ 숨기기) ν˜„μž¬ μˆ˜ν–‰ν•˜λŠ” 방법 (순회)은 μžμ‹μ˜ κ°€μ‹œμ  μƒνƒœλ₯Ό μœ μ§€ν•˜κ³  μ‹ΆκΈ° λ•Œλ¬Έμ— κ°€λŠ₯ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 일뢀 μ–΄λ¦°μ΄λŠ” ν‘œμ‹œλ˜κ³  λ‹€λ₯Έ μΌλΆ€λŠ” ν‘œμ‹œλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λΆ€λͺ¨λ₯Ό 숨기면 λͺ¨λ“  μžμ‹μ΄ 숨겨 μ§€μ§€λ§Œ λ‹€μ‹œ ν‘œμ‹œν•˜λ©΄ 이전에 ν‘œμ‹œλ˜μ—ˆλ˜ μžμ‹μ΄ ν‘œμ‹œλ©λ‹ˆλ‹€.

λ‚˜λŠ” λ™μ˜ν•œλ‹€. WebGLRenderer λŠ”μ΄λ₯Ό μˆ˜μš©ν•΄μ•Όν•©λ‹ˆλ‹€. λ‚΄κ°€ν•΄μ•Ό ν•  μΌμž…λ‹ˆλ‹€.

μ°Έκ³  : λΆ€λͺ¨μ—κ²Œ ν‘œμ‹œλ˜λŠ” 섀정은 이제 μžμ‹μ—κ²Œλ„ 영ν–₯μ„μ€λ‹ˆλ‹€. (r71둜 ν…ŒμŠ€νŠΈ 됨)

r72 μ‚¬μš©. λΆ€λͺ¨μ—κ²Œ λ³΄μ΄λŠ” 섀정은 μžλ…€μ—κ²Œ 영ν–₯을 λ―ΈμΉ˜μ§€ μ•ŠλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. κΈ°λŠ₯이 λ‹€μ‹œ λ³€κ²½ λ˜μ—ˆμŠ΅λ‹ˆκΉŒ?

@agnivade μ•„λ‹ˆμš”, λ³€κ²½λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. visible λ₯Ό false 둜 μ„€μ •ν•˜λ©΄ visible μžμ‹μ— 관계없이 객체 λ‚˜ μžμ‹ λͺ¨λ‘ λ Œλ”λŸ¬κ°€λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. visible κ°€ true 둜 μ„€μ •λ˜λ©΄ visible κ°€ true μ„€μ •λœ κ²½μš°μ—λ§Œ μžμ‹μ΄ λ Œλ”λ§λ©λ‹ˆλ‹€.

감사. λ‚΄ μ½”λ“œμ— λ¬Έμ œκ°€μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. ν™•μΈν•˜κ² μŠ΅λ‹ˆλ‹€.

감사

κ·Έλƒ₯ 호좜 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
myObj3D.visible = 거짓. 이것은 Object3D의 μžμ‹ 인 λͺ¨λ“  것을 μˆ¨κΈ°λŠ” κ²ƒμ²˜λŸΌ λ³΄μž…λ‹ˆλ‹€.

myObj3D.visible = true 호좜 λͺ¨λ“  것을 ν‘œμ‹œν•©λ‹ˆλ‹€.

였래된 λ…Όμ˜μ΄μ§€λ§Œ 여기에 μ€‘μš”ν•œ κ²½κ³ κ°€ μžˆμŠ΅λ‹ˆλ‹€. visible을 false둜 μ„€μ •ν•˜λ©΄ "only"둜 μ„€μ •ν•˜λ©΄ μ˜€λΈŒμ νŠΈμ™€ μΉ΄λ©”λΌμ˜ μžμ‹μ΄ 숨겨 μ§€μ§€λ§Œ 두 개의 λ‹€λ₯Έ λ ˆμ΄μ–΄λ₯Ό μ‚¬μš©ν•˜κ³  λ ˆμ΄μ–΄μ—μ„œ λΉ„ν™œμ„±ν™”ν•˜μ§€ μ•ŠλŠ” ν•œ 레이 μΊμŠ€ν„°μ—μ„œλŠ” μ—¬μ „νžˆ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. 레이 μΊμŠ€ν„°κ°€ κ΄€μ°°ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ™„μ „νžˆ 보이지 μ•Šκ²Œν•˜λ €λ©΄ 레이 μΊμŠ€ν„°κ°€ μ‚¬μš©ν•˜λŠ” λ ˆμ΄μ–΄μ—μ„œ λΉ„ν™œμ„±ν™”ν•΄μ•Όν•©λ‹ˆλ‹€.
μΉ΄λ©”λΌμ—λŠ” λ ˆμ΄μ–΄ 0κ³Ό 1을 μ‚¬μš©ν•˜κ³  레이 μΊμŠ€νŒ…μ—λŠ” λ ˆμ΄μ–΄ 0 만 μ‚¬μš©ν•˜λ―€λ‘œ 였브젝트λ₯Ό ν‘œμ‹œν•˜κ³  레이 캐슀트 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
obj.layers.enable(0); obj.visible = true;

ν‘œμ‹œλ˜μ§€λ§Œ 레이 μΊμŠ€νŠΈλ˜μ§€ μ•Šμ€ 였브젝트 :
obj.layers.disable(0); obj.layers.enable(1); obj.visible = true;

레이 μΊμŠ€νŠΈλ˜μ§€ μ•Šμ€ μˆ¨κ²¨μ§„ 였브젝트 :
obj.layers.disable(0); obj.layers.enable(1); obj.visible = false;

@ jscastro76 당신은 https://github.com/mrdoob/three.js/pull/19012에 κ΄€μ‹¬μ΄μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

κ³ λ§ˆμ›Œμš”, μ œκ°€ μ‚΄νŽ΄ λ³Όκ²Œμš”!

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰