Object3D
3D 곡κ°μ λλΆλΆμ κ°μ²΄κ° μμλ°λ ν΄λμ€μ λλ€.
μλ λ΄μ© μ΄μΈμλ THREE.Object3Dμ λ€μν μμ±κ³Ό λ©μλλ₯Ό μ¬μ©ν μ μμ΅λλ€.
μμ±
.castShadow
object.castShadow
: Boolean
objectκ° κ·Έλ¦Όμλ₯Ό μμ±νλμ§ μ¬λΆλ₯Ό μ€μ νλ μμ±μ
λλ€.
κΈ°λ³Έκ°μ falseμ
λλ€.
.children
object.children
: Array
objectμ μμ κ°μ²΄λ€μ λ°°μ΄λ‘ λ°ννλ μμ±μ
λλ€.
κ°μ²΄λ₯Ό μλμΌλ‘ κ·Έλ£Ήννλ λ°©λ²μ λν μμΈν λ΄μ©μ κ·Έλ£Ήμ μ°Έμ‘°νμΈμ.
.parent
object.parent
: Object3D
objectμ κ°μ²΄μ λΆλͺ¨ κ°μ²΄λ₯Ό λ°ννλ μμ±μ
λλ€.
κ°μ²΄λ μ΅λ νλμ λΆλͺ¨λ§ κ°μ§ μ μμ΅λλ€.
.position
object.position
: Vector3
κ°μ²΄μ μμΉλ₯Ό λνλ΄λ μμ±μ
λλ€.
μ΄ μμ±μ ν΅ν΄ κ°μ²΄μ μμΉλ₯Ό μ€μ νκ±°λ κ°μ Έμ¬ μ μμ΅λλ€.
κΈ°λ³Έκ°μ β(0, 0, 0)βμ
λλ€.
.quaternion
object.quaternion
: Quaternion
κ°μ²΄μ νμ μ λνλ΄λ λλ€λ₯Έ λ°©μμ
λλ€.
μ΄ μμ±μ ν΅ν΄ κ°μ²΄μ νμ μνλ₯Ό μ€μ νκ±°λ κ°μ Έμ¬ μ μμ΅λλ€.
Quaternionμ Euler κ°λμ λ¬λ¦¬ νμ μ λ³΄λ€ μ ννκ² ννν μ μμ΅λλ€.
.receiveShadow
object.receiveShadow
: Boolean
κ°μ²΄κ° κ·Έλ¦Όμλ₯Ό λ°μ μ μλμ§ μ¬λΆλ₯Ό μ€μ νλ μμ±μ
λλ€.
μ΄ μμ±μ THREE.Mesh κ°μ²΄λ κ·Έμ μ μ¬ν κ°μ²΄λ€μμ μ¬μ©λ μ μμ΅λλ€.
κΈ°λ³Έκ°μ falseμ
λλ€.
.rotation
object.rotation
: Euler
κ°μ²΄μ νμ μ λνλ΄λ μμ±μΌλ‘, λΌλμ λ¨μμ
λλ€.
μ΄ μμ±μ ν΅ν΄ κ°μ²΄μ νμ κ°λλ₯Ό μ€μ νκ±°λ κ°μ Έμ¬ μ μμ΅λλ€.
.scale
object.scale
: Vector3
κ°μ²΄μ ν¬κΈ°λ₯Ό λνλ΄λ μμ±μ
λλ€.
μ΄ μμ±μ ν΅ν΄ κ°μ²΄μ ν¬κΈ°λ₯Ό μ€μ νκ±°λ κ°μ Έμ¬ μ μμ΅λλ€.
κ°μ²΄μ ν¬κΈ°λ μ¬μ μ’νκ³μ λ°λΌ μλμ μΌλ‘ μ€μ λ©λλ€. λ°λΌμ κ°μ²΄κ° λ€λ₯Έ κ°μ²΄μ μμμΌ κ²½μ° λΆλͺ¨ κ°μ²΄μ ν¬κΈ°μ μν₯μ λ°μ μ μμ΅λλ€.
κΈ°λ³Έκ°μ Vector3( 1, 1, 1 )μ
λλ€.
.visible
object.visible
: Boolean
κ°μ²΄μ κ°μμ± μ¬λΆλ₯Ό μ€μ νκ±°λ κ°μ Έμ¬ μ μλ μμ±μ
λλ€.
μ΄ μμ±μ ν΅ν΄ κ°μ²΄κ° νλ©΄μ νμλλμ§ μ¬λΆλ₯Ό μ μ΄ν μ μμ΅λλ€.
κΈ°λ³Έκ°μ trueμ
λλ€.
λ©μλ
.add()
parentObject.add ( childObject : Object3D, ... )
: this
κ°μ²΄λ₯Ό λ€λ₯Έ κ°μ²΄μ μμμΌλ‘ μΆκ°ν λ μ¬μ©λ©λλ€.
μμμ κ°μμ κ°μ²΄λ₯Ό μΆκ°ν μ μμ΅λλ€.
λΆλͺ¨ κ°μ²΄κ° μ΄λ, νμ , ν¬κΈ° μ‘°μ λ±μ λ³νλ₯Ό νλλΌλ μμ κ°μ²΄λ λ
립μ μΌλ‘ κ·Έ μμΉμ νμ μ μ μ§ν©λλ€.
κ°μ²΄λ μ΅λ νλμ λΆλͺ¨λ₯Ό κ°μ§ μ μμΌλ―λ‘ μ΄λ―Έ λΆλͺ¨λ₯Ό κ°μ§κ³ μμλ€λ©΄ μ κ±°λ ν μ λΆλͺ¨λ₯Ό κ°μ§κ² λ©λλ€.
.attach()
parentObject.attach ( childObject : Object3D )
: this
κ°μ²΄λ₯Ό λ€λ₯Έ κ°μ²΄μ μμμΌλ‘ μΆκ°νλ©΄μ, λΆλͺ¨ κ°μ²΄μ μΈκ³ λ³ν(Transform)μ μ μ§νλ λ° μ¬μ©λ©λλ€.
λ°λΌμ λΆλͺ¨ κ°μ²΄κ° μ΄λ, νμ , ν¬κΈ° μ‘°μ λ±μ λ³νλ₯Ό νλ©΄, μμ κ°μ²΄λ κ·Έ λ³νλ₯Ό λ°μνμ¬ ν¨κ» μ΄λνκ±°λ νμ ν©λλ€.
add()λ μ£Όλ‘ μ¬μ κ°μ²΄λ₯Ό μΆκ°ν λ μ¬μ©νλ©°, attach()λ κ°μ²΄ κ°μ κ³μΈ΅ κ΄κ³λ₯Ό ꡬμ±ν λ μ¬μ©λ©λλ€.
.clone()
originalObject.clone(recursive: Boolean)
: Object3D
recursive - trueμΈ κ²½μ° μ΄ κ°μ²΄μ μμ κ°μ²΄λ€λ 볡μ λ©λλ€. κΈ°λ³Έκ°μ trueμ λλ€.
κ°μ²΄λ₯Ό 볡μ νμ¬ μλ‘μ΄ κ°μ²΄λ₯Ό μμ±ν΄ λ°νν©λλ€.
μλ³Έ κ°μ²΄μ κΈ°ννμ λͺ¨μ, μ¬μ§, μμΉ, νμ , ν¬κΈ° λ±μ ν¬ν¨ν μμ±λ€μ 볡μ¬νμ¬ μλ‘μ΄ κ°μ²΄λ₯Ό μμ±ν©λλ€.
κ·Έλ¬λ Physicsμ Behavior μμ±μ 볡μ¬λμ§ μμ΅λλ€.
λν .clone()
μ μ¬μ©νμ¬ λ³΅μ ν μ€λΈμ νΈλ API νμ₯μ Object3Dμ μν λ©μλλ μ¬μ©ν μ μμ΅λλ€.
ν΄λΉ λ©μλλ€μ μ¬μ©νκ³ μΆλ€λ©΄ .cloneWithMethods()
λ₯Ό μ¬μ©νμΈμ.
볡μ λ κ°μ²΄λ μλ³Έ κ°μ²΄μ μμ ν λ 립μ μ΄λ―λ‘, 볡μ νμ κ°μ²΄ λ³νλ μλ³Έ κ°μ²΄μ μν₯μ λ―ΈμΉμ§ μμ΅λλ€.
볡μ ν μ€λΈμ νΈλ WORLDμ μμμΌλ‘ μΆκ°ν΄ μ£Όμ΄μΌ μ¬μ©μ΄ κ°λ₯ν©λλ€.
const obj = WORLD.getObject("obj");
const clone_obj = obj.clone();
WORLD.add(clone_obj);
clone_obj.position.set(10, 1, 10);
.copy()
originalObject.copy (targetObject : Object3D, recursive : Boolean )
: this
recursive - trueμΈ κ²½μ° μ΄ κ°μ²΄μ μμ κ°μ²΄λ€λ 볡μ¬λ©λλ€. κΈ°λ³Έκ°μ trueμ λλ€.
κ°μ²΄μ μμ±μ λ€λ₯Έ κ°μ²΄λ‘ 볡μ¬ν΄μ μλ‘μ΄ κ°μ²΄λ₯Ό λ§λ€μ΄λ΄ λ°νν©λλ€.
μ΄ κ³Όμ μμ κΈ°μ‘΄ κ°μ²΄(targetObject)λ λ³κ²½λμ§ μμ΅λλ€.
.getObjectById()
object.getObjectById ( id : Integer )
: Object3D
id β κ°μ²΄ μΈμ€ν΄μ€μ κ³ μ λ²νΈ
ν΄λΉ κ°μ²΄ μ체λΆν° μμνμ¬ μμ κ°μ²΄κΉμ§ κ²μνκ³ , μΌμΉνλ IDκ° μλ 첫 λ²μ§Έ νλͺ©μ λ°νν©λλ€.
μ°Ύμ§ λͺ»νλ©΄ nullμ λ°νν©λλ€.
IDλ μκ°μμΌλ‘ 1, 2, 3, β¦μΌλ‘ ν λΉλμ΄ μ€λ³΅λμ§ μκ³ μ μΌν κ°μ΄λ©°, μλ‘μ΄ κ°μ²΄λ§λ€ 1μ© μ¦κ°ν©λλ€.
.getObjectByProperty()
.getObjectByProperty( propertyName : String, value : Any )
: Object3D
propertyName - κ²μν μμ± μ΄λ¦μ
λλ€.
value - κ²μν μμ±μ κ°μ
λλ€. ν΄λΉ μμ±μ΄ μ§μ ν κ°κ³Ό μΌμΉνλ κ°μ²΄λ₯Ό κ²μν©λλ€.
νΉμ μμ± κ°μ κΈ°μ€μΌλ‘ μ¬ κ·Έλνμμ κ°μ²΄λ₯Ό κ²μνλ λ©μλμ λλ€. κ²μ κ²°κ³Όλ‘ μΌμΉνλ 첫 λ²μ§Έ κ°μ²΄λ₯Ό λ°νν©λλ€. μΌμΉνλ κ°μ²΄κ° μμΌλ©΄ nullμ λ°νν©λλ€.
.getWorldDirection()
object.getWorldDirection( target : Vector3 )
: Vector3
target λ°©ν₯μ μ΄ κ°μ²΄κ° λ°λΌλ³΄λ λ°©ν₯κ³Ό λμΌνκ² μ€μ νμ¬ λ°νν©λλ€.
μ΄ λ©μλλ κ°μ²΄μ μλ 곡κ°μμμ λ°©ν₯μ κ³μ°νκΈ° μν΄ μ¬ κ·Έλνλ₯Ό λ°λΌ μμ κ°μ²΄μ λ³νμ λͺ¨λ κ³ λ €ν©λλ€.
λ°λΌμ κ°μ²΄μ λΆλͺ¨κ° νμ νκ±°λ μ΄λν κ²½μ°μλ μ νν μλ 곡κ°μμμ λ°©ν₯μ λ°νν©λλ€.
μ¬μ ν¬ν¨λμ§ μμ κ°μ²΄μ λν΄ μ΄ λ©μλλ₯Ό νΈμΆνλ©΄ μμΈκ° λ°μν μ μμ΅λλ€.
.getWorldPosition()
object.getWorldPosition( target : Vector3 )
: Vector3
target μλ μ’νλ₯Ό objectμ μλ μ’νμ λμΌνκ² μ€μ νμ¬ λ°νν©λλ€.
μ΄ λ©μλλ κ°μ²΄μ μλ μ’νλ₯Ό κ³μ°νκΈ° μν΄ μ¬ κ·Έλνλ₯Ό λ°λΌ μμ κ°μ²΄μ λ³νμ λͺ¨λ κ³ λ €ν©λλ€.
λ°λΌμ κ°μ²΄μ λΆλͺ¨κ° νμ νκ±°λ μ΄λν κ²½μ°μλ μ νν μλ μ’νλ₯Ό λ°νν©λλ€.
μ¬μ ν¬ν¨λμ§ μμ κ°μ²΄μ λν΄ μ΄ λ©μλλ₯Ό νΈμΆνλ©΄ μμΈκ° λ°μν μ μμ΅λλ€.
.getWorldQuaternion()
object.getWorldQuaternion ( target : Quaternion )
: Quaternion
target νμ κ°μ objectμ νμ κ°κ³Ό λμΌνκ² μ€μ νμ¬ λ°νν©λλ€.
μ΄ λ©μλλ κ°μ²΄μ μλ 곡κ°μμμ μΏΌν°λμΈμ κ³μ°νκΈ° μν΄ μ¬ κ·Έλνλ₯Ό λ°λΌ μμ κ°μ²΄μ λ³νμ λͺ¨λ κ³ λ €ν©λλ€.
λ°λΌμ κ°μ²΄μ λΆλͺ¨κ° νμ νκ±°λ μ΄λν κ²½μ°μλ μ νν μλ 곡κ°μμμ μΏΌν°λμΈμ λ°νν©λλ€.
μ¬μ ν¬ν¨λμ§ μμ κ°μ²΄μ λν΄ μ΄ λ©μλλ₯Ό νΈμΆνλ©΄ μμΈκ° λ°μν μ μμ΅λλ€.
.getWorldScale()
object.getWorldScale( target : Vector3 )
: Vector3
target μ€μΌμΌμ μ΄ κ°μ²΄μ μ€μΌμΌκ³Ό λμΌνκ² μ€μ νμ¬ λ°νν©λλ€.
μ΄ λ©μλλ κ°μ²΄μ μλ 곡κ°μμμ μ€μΌμΌμ κ³μ°νκΈ° μν΄ μ¬ κ·Έλνλ₯Ό λ°λΌ μμ κ°μ²΄μ λ³νμ λͺ¨λ κ³ λ €ν©λλ€.
λ°λΌμ κ°μ²΄μ λΆλͺ¨κ° ν¬κΈ°λ₯Ό μ‘°μ ν κ²½μ°μλ μ νν μλ 곡κ°μμμ μ€μΌμΌμ λ°νν©λλ€.
μ¬μ ν¬ν¨λμ§ μμ κ°μ²΄μ λν΄ μ΄ λ©μλλ₯Ό νΈμΆνλ©΄ μμΈκ° λ°μν μ μμ΅λλ€.
.lookAt()
object.lookAt ( target : Vector3 )
: undefined
object.lookAt ( x : Float, y : Float, z : Float )
: undefined
target - THREE.Vector3 νμ
μ 벑ν°λ‘, κ°μ²΄κ° λ°λΌλ³Ό λμμ μμΉλ₯Ό μ§μ ν©λλ€.
x, y, z - 벑ν°μ x, y, z κ°μ μ νμ μΌλ‘ μ§μ ν μ μμ΅λλ€.
objectλ₯Ό νΉμ μ§μ (벑ν°)μ ν₯νλλ‘ νμ μν€λ λ©μλμ
λλ€.
μ΄ λ©μλλ κ°μ²΄μ λ‘컬 μ’νκ³ κΈ°μ€μΌλ‘ νμ μ μνν©λλ€. λ°λΌμ λΆλͺ¨ κ°μ²΄μ λ³νμ μν₯μ λ°μ΅λλ€.
.raycast()
.raycast( raycaster : Raycaster, intersects : Array )
: undefined
raycaster - THREE.Raycaster κ°μ²΄μ
λλ€. μ΄ κ°μ²΄λ κ΄μ μ μΆλ°μ (origin)κ³Ό λ°©ν₯(direction)μ μ€μ νμ¬ κ΄μ μ μ μν©λλ€.
intersects - κ΅μ°¨μ (intersection) μ 보λ₯Ό μ μ₯ν λ°°μ΄μ
λλ€. κ΄μ μ΄ κ°μ²΄μ κ΅μ°¨ν κ²½μ°, κ΅μ°¨μ μ λν μ λ³΄κ° μ΄ λ°°μ΄μ μΆκ°λ©λλ€.
κ΄μ μ΄ νΉμ κ°μ²΄μ μΆ©λνλμ§ μ¬λΆλ₯Ό κ²μ¬νκ³ , μΆ©λν κ°μ²΄λ₯Ό μλ³νλ λ° μ¬μ©λ©λλ€.
κ΄μ κ³Ό κ°μ²΄ μ¬μ΄μ μΆ©λμ μ νν κ³μ°νκΈ° μν΄ κ°μ²΄μ λ©μ¬κ° νμν©λλ€. κΈ°λ³Έμ μΈ THREE.Mesh λλ μ΄λ₯Ό μμλ°λ κ°μ²΄λ€μ΄ μΆ©λ κ²μ¬μ μ¬μ©λ©λλ€.
Mesh, Line λ° Pointsμ κ°μ νμ ν΄λμ€λ λ μ΄μΊμ€ν
μ μ¬μ©νκΈ° μν΄ μ΄ λ©μλλ₯Ό ꡬνν©λλ€.
.remove()
parentObject.remove ( childObject : Object3D, ... )
: this
κ°μ²΄λ₯Ό λΆλͺ¨ κ°μ²΄λ‘λΆν° μ κ±°νλ λ° μ¬μ©λ©λλ€.
μμμ μμ κ°μ²΄λ₯Ό μ κ±°ν μ μμ΅λλ€.
μ κ±°λ κ°μ²΄λ λ€μ λ€λ₯Έ λΆλͺ¨ κ°μ²΄μ μΆκ°νκ±°λ μ¬μ λ€μ μΆκ°ν΄μΌλ§ λ€μ μ¬μ©ν μ μμ΅λλ€.
.removeFromParent()
childObject.removeFromParent ()
: this
λΆλͺ¨ κ°μ²΄μμ μ΄ κ°μ²΄λ₯Ό μ κ±°ν©λλ€.
.rotateOnAxis()
object.rotateOnAxis ( axis : Vector3, angle : Float )
: this
axis - THREE.Vector3 νμ
μ 벑ν°λ‘, νμ μ μΆμ μ μν©λλ€.
angle - νμ κ°λλ‘, λΌλμ λ¨μλ‘ μ§μ ν©λλ€.
κ°μ²΄μ λ‘컬 μ’νκ³μμ μ§μ λ μΆ(axis)μ κΈ°μ€μΌλ‘ νμ μν€λ λ©μλμ
λλ€.
κ°μ²΄μ λ‘컬 μ’νκ³λ₯Ό κΈ°μ€μΌλ‘ νμ νλ―λ‘, λΆλͺ¨ κ°μ²΄μ λ³νμ μν₯μ λ°μ§ μμ΅λλ€.
.rotateOnWorldAxis()
object.rotateOnWorldAxis( axis : Vector3, angle : Float)
: this
axis - THREE.Vector3 νμ
μ 벑ν°λ‘, νμ μ μΆμ μλ μ’νκ³μμ μ μν©λλ€.
angle - νμ κ°λλ‘, λΌλμ λ¨μλ‘ μ§μ ν©λλ€.
κ°μ²΄λ₯Ό μλ μ’νκ³μ νΉμ μΆμ κΈ°μ€μΌλ‘ νμ μν΅λλ€.
μ΄ λ©μλλ κ°μ²΄μ νμ μ κ°μ²΄ μ체μ λ‘컬 μΆμ΄ μλλΌ μλ μ’νκ³μμ μ§μ λ μΆμ κΈ°μ€μΌλ‘ μνν©λλ€.
λ°λΌμ κ°μ²΄μ λΆλͺ¨ κ°μ²΄μ λ³νμ μν₯μ λ°μ§ μκ³ μ§μ λ μΆμ κΈ°μ€μΌλ‘ νμ ν©λλ€.
.traverse()
object.traverse ( callback : Function )
: undefined
callback - κ° κ°μ²΄μ λν΄ νΈμΆλ μ½λ°± ν¨μμ λλ€. μ΄ ν¨μλ objectλ₯Ό 맀κ°λ³μλ‘ λ°μ΅λλ€.
κ°μ²΄μ κ³μΈ΅ ꡬ쑰λ₯Ό μννλ©° κ° κ°μ²΄μ λν΄ μ§μ λ μ½λ°± ν¨μλ₯Ό νΈμΆνλ λ©μλ μ λλ€.