핀볼 머신 각 부분의 명칭들은 나도 생소한 편.
* Cube로 플리퍼 만들고 Component-Physics-Hinge
Joint 적용.
Rigidbody-Mass: 0.1, Angular Drag: 0, Use Gravity: On.
Hinge Joint-Anchor: -0.5/0/0, Axis: 0/1/0로 설정.
변수는 presPos: 70/-70, power:80/80, keyCode: Left Shift/Right Shift
적용.
좌/우 쉬프트 키 클릭시 플리퍼 튕기는 처리-제대로 작동않고 있다.
쉬프트 키 클릭시 플리퍼가 작동되지 않고 공과 플리퍼가 접촉했을 때에만 키를 누르면 플리퍼가 작동되는 버그 중.
* Cube로 플런저 만들고 Component-Physics-Spring
Joint 적용.
Rigidbody-Use Gravity: off, is Kinematic: on,
Constraints-Freeze Position: x,y 체크, Freeze Rotation: x,y,z 체크.
Spring Joint-Anchor: 0/0/2, Spring: 400, : 0/1/0로 설정.
스페이스키 클릭시 플런저 튕기는 처리-이건 제대로 작동.
* 볼은 Sphere로 생성해 prefab으로 만들기. Tag는 'Player'
적용.
Rigidbody-Mass: 0.001, Drag, Angular Drag: 0, Use Gravity: On,
Collision Detection: Continuous 적용.
* Main Camera-Pos: 2/18/-12, Rot: 43.6/0/0, FOV:60
* Directional Light-Pos: 1.42/13/-23, Rot: 50/0/0
* 기본 도형들로 핀볼 보드 간단히 만들기.
삼각 오브젝트는 임포트하여 사용하고 Component-Physics-Mesh Collider
추가.
하단에 Mesh Renderer를 비활성화하고 Box Collider-Is Trigger: On 처리한 OutBall을
배치하여 볼이 이곳에 닿으면 제거되고 새로운 볼이 지정한 위치(BallSpawnPoint 위치)에 새로 생성되게
처리.
* 역시 Cube로 만든 동일 크기, 동일 위치의 Shutter, ShutterSensor(이건
Box Collider-Is Trigger: On 하고 Mesh Renderer는 비활성화). 처음 볼이 발사될
때 Shutter를 비활성화해 보이지 않고 충돌도 않게 처리하고 볼이 발사되며 ShutterSensor의 Trigger를
나가면 Shutter를 활성화해 보이게 하여 다시 발사 통로로 볼이 들어가지 못하게 처리.
* 범퍼: Capsule로 만들고 이곳에 닿으면 부딪친 반대 방향으로 튕기게 처리.
* 슬링샷: Cube로 만든 Sling(Box Collider-Is Trigger:
Off 하고 Mesh Renderer는 비활성화)를 기울여 슬링샷 측면에 붙이고 이곳에 닿으면 일정 방향으로 튕기게
처리. 범퍼는 제대로 동작하는데 슬링은 작동이 안되어 왜 그런가 헤멨는데 알고 보니 슬링의 경우 OnCollisionEnter()로
써야할 것을 onCollisionEnter()으로 오타를 쳐서 생긴 현상이었다.
* 볼의 속도가 일정 속도 이상이 될 경우 뒤에 꼬리가 생기는 효과 만들기.
볼 프리팹 선택하고 Add Component-Effect-Trail Renderer 추가.
Trail Renderer-Materials-Size: 1, Elements0: MatBallTrail 적용.
Time: 0.4, Start Width: 1, End Width: 0.3,
Colors: 알파값을 맨 위에서부터 차례로 255, 196, 128, 96, 0으로 설정.
* 볼의 속도가 지정한 최대속도보다 높으면 지정 최대속도로 변경 처리.
* 일단 따라하기 완료했지만 버그 들이 잔뜩 남아있다. (특히 제일 중요하고 시급히 처리해야할 것은 플리퍼가 제대로
작동하지 않는 것)
|