거의 알고리즘 일기장
3. 유니티 _ 실제와 같은 물체를 만들고 움직이기 본문
1. 중력 적용하기
RigidBody: 물리효과를 받기 위한 컴포넌트. Add Component에서 RigidBody를 추가하면 됨.(2D :RigidBody 2D)
Mass : 질량
Drag : 공기저항
Use Gravity : 말 그대로 중력체크
Is Kinematic : 이걸 체크하게되면 부딪쳐도 움직이지 않음, 물리현상에 관여 안하는듯 (스크립트로 움직이기 전까지)
2. 충돌 영역 정하기
Collider: 물리효과(충돌판정)을 받기 위한 컴포넌트. 물체 주변에 보이는 녹색선. 없을시 타 물체와 충돌하지 않음
물리 판정은 보이는 물체가 기준이 아니라 Collider 수치에 따라 결정됨.(Radius-반지름)
3. 재질 만들기
새로 재질을 만들어 드랍하면 적용
Metallic : 0~1까지 철재질을 어느정도로 할것인지, 스크롤 바 컨트롤을 이용해서 설정
Smoothness : 빛반사, 스크롤 바 컨트롤을 이용해서 설정
Albedo 왼쪽 작은 박스에 그린 그림을 넣을수도 있다, 텍스쳐를 넣는다고 함.
Tiling : 텍스쳐 반복 타일 개수 설정 가능
Emission : 텍스쳐 발광(밝기)조절 ( 물리적으로 빛을 내는것은 아님)
4. 물리 재질 만들기
Collider에 추가,
Bounciness : 탄성, 1이 최대
Bounciness Combine : 다음 탄성 결정
Friction: 마찰력, 낮을수록 많이 미끄러짐
Dynamic Friction: 이동 마찰력
Static Friction: 정지 마찰력
Friction Combine: 다음 마찰력 결정
Friction Combine은 최소로, Bounciness는 최대로 하면 만화스러워짐 ㅎ
5. 물리충돌 이벤트
//실제 물리적인 충돌로 발생하는 이벤트
private void OnCollisionEnter(Collision collision){}
private void OnCollisionStay(Collision collision) { }
private void OnCollisionExit(Collision collision) { }
//콜라이더 충돌로 발생하는 이벤트
private void OnTriggerEnter(Collider other){}
private void OnTriggerStay(Collider other) { }
private void OnTriggerExit(Collider other) { }
6. 볼에 관련된 코드 추가
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MyBall : MonoBehaviour
{
Rigidbody rigid;
// Start is called before the first frame update
void Start(){
rigid = GetComponent<Rigidbody>();
}
// Update is called once per frame
void FixedUpdate(){
//안정된 물리효과는 여기에
//1. enter 누를때마다 위쪽으로 힘 가하기
if (Input.GetButtonDown("Jump")){
//힘을 위쪽으로 준것!, 이건 무게에 영향을 받음
rigid.AddForce(Vector3.up * 5, ForceMode.Impulse);
Debug.Log(rigid.velocity);
}
//2. 오른쪽 왼쪽방향키를 누를때마다 힘 가하기
Vector3 vec = new Vector3(Input.GetAxisRaw("Horizontal")*0.5f, 0,
Input.GetAxisRaw("Vertical")*0.5f);
rigid.AddForce(vec, ForceMode.Impulse);
//3. 회전력, vector를 축으로 삼아 회전함 ㅎㅎ
//그러므로 up이면 y축방향을 축으로 회전하므로 제자리에서 돌게됨.
rigid.AddTorque(Vector3.up);
}
}
참고
'유니티' 카테고리의 다른 글
6. 유니티 _ 아틀라스, 애니메이션, 이동, 점프 (3) | 2020.05.05 |
---|---|
5. 유니티 _ 간단 3D게임 (0) | 2020.05.03 |
4. 유니티 _ UI만들기 (0) | 2020.05.02 |
2. 유니티 _ 델타 타임 (deltaTime) (0) | 2020.05.02 |
1. 유니티 _ 목표지점으로 이동시키기 (0) | 2020.05.02 |