Clolent

◆ 코사인 법칙

- A^2 = B^2 + C^2 - 2 B C Cos Θ

◆ 사분면과 삼각함수

Sin

All 

Tan 

Cos 


◆ 덧셈(뺄셈) 정리

Sin( a + b ) = Sin a Cos b + Cos a Sin b

Cos( a + b ) = Cos a Cos b - Sin a Sin b


◆ 반각 공식

( Sin a ) ^ 2 = ( 1 - Cos 2a ) / 2 



========================================================


◆ Input.GetMouseButtonDown(0)

마우스 좌클릭이 되면 true 를 반환한다.


◆ Input.mousePosition

마우스 위치 좌표 ( 마우스 위치좌표엔 깊이 값이 존재하지 않으므로 z 값은 항상 0 )

이 경우엔 클릭이 되었을 경우 이 값이 인수로 넘어가므로 마우스가 클릭된 위치 일 것이다.


◆ Camera.main.WorldToScreenPoint( 포지션값(vector3) )

어떤 포지션 값을 월드좌표 기준에서 스크린 좌표 로 변환하여 그 값을 반환 

반환값 : Vector3


◆ Mathf 클래스의 Atan2 아크탄젠트 [  Mathf.Atan2( vector.y , vector.x )  ]

Atan 이 아닌 Atan2 를 사용하는 이유는 두번째 인수가 0이 되는경우

( 즉 탄젠트를 구할수없는 경우 ) 적정한값 π / 2 or - π / 2 을 반환한다.

라디안 값 반환


◆ 라디안 값 X ( Mathf.Rad2Deg ) 하면 우리가 흔히하는 각도로 변환된다. ( float )  


◆ Mathf.LerpAngle ( From , To , 1회 실행될때 진행되는 값 ) 

선형보간 기법으로 기본적으로 Lerp 와 같지만 각도에 대해서 사용, 

그냥 Lerp 는 360도를 넘는 각도를 고려하지 않으므로.


◆ GameObject.CreatePrimitive( PrimitiveType ) 

PrimitiveType 에 해당하는 녀석을 Create 한다. 반환값은 GameObject

PrimitiveType : Capsule / Cube / Cylinder / Plane / Quad / Sphere 


◆ 공이 튕기면서 캡슐위치로 가는 코드 

sphere.transform.position = new Vector3( sphere.transform.position.x + (capsule.transform.position.x - sphere.transform.position.x) * Time.deltaTime * sphereMagnitudeX, Mathf.Abs(Mathf.Sin ((Time.time - buttonDownTime) * 

(Mathf.PI * 2) * sphereFrequency) * sphereMagnitudeY), );


하나씩 보자   


X축

sphere.transform.position.x + (capsule.transform.position.x - sphere.transform.position.x) * Time.deltaTime * sphereMagnitudeX


공의 현재X값 + ( 캡슐의 현재X값 - 공의 현재 X 값 ) * 프레임 * 2.0f ( sphereMagnitudeX ) 

= 공의 현재 X값 + (공->캡슐 X벡터) * 이동정도 

= 공이 현재 X위치에서 점점 공의 X 위치로 다가간다. 


Y축

Mathf.Abs(Mathf.Sin ((Time.time - buttonDownTime) * (Mathf.PI * 2) * sphereFrequency) * sphereMagnitudeY)


절대값 ( Sin ( ( 현재시간 - 클릭된 시간 ) * ( π * 2 ) * 1.0f  ) 


정확한 주기는 알수가 없지만 대략 Sin 그래프를 절댓값 씌운 형태로 Y값이 움직이게 될것이란것은 알수있다.


Z축

0 Z축은 현재 신경 안쓰고있다. 



댓글 로드 중…

블로그 정보

Clolent - 커피물조절달인

최근에 게시된 글