Roll a Ball
Materials 적용하기
Asset에서 빈Materials을 생성한다.
그리고, Texture파일을 빈Materials에 Albedo에 끌어다 놓는다.
Physic Material
Component -> Physic Material 생성한다.
Dynamic Friction : 이미 이동중일 때 마찰
Static Friction : 정지시 마찰
Bounciness : 반동방식
나는 벽에다 Physic Material를 추가 하고 Bounciness값을 0.5주었다.
그랬더니 ~
볼을 벽에 부딪히면 전과 다르게 튕겨 나온다.
(캐릭터 움직임에는 translate으로 위치값을 변경해주는 방법과
rigdbody를 통해 물리적힘을 줘서 물체를 움직이는 방법이있는데
이 게임은 rb.AddForce (movement * speed); 로 물체에 힘을 줘서 움직이게 하고있다.)
코드분석
코드분석 : PlayerControllers
public으로 변수를 할당하면 유니티 인스펙터창에서 보인다. 변경가능 (값 적용 우선순위 : 인스펙터 > 소스코드창)
speed : 스피드 값
Text CountText; 현재 점수를 불러올 UI 텍스트
Win Text : 승리시 띄울 UI텍스트
void Start ()
{
rb = GetComponent<Rigidbody>();
count = 0;
SetCountText ();
winText.text = "";
}
주요코드
rb = GetComponent<Rigidbody>();
컴포넌트 Rigidbody를 가져와 변수 rb로 정한다.
void FixedUpdate ()
{
float moveHorizontal = Input.GetAxis ("Horizontal");
float moveVertical = Input.GetAxis ("Vertical");
Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical);
rb.AddForce (movement * speed);
}
주요코드
rb.AddForce (movement * speed);
Rigidbody를 물리적 힘을 가해 플레이어를 이동시킨다.
void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag ("Pick Up"))
{
other.gameObject.SetActive (false);
count = count + 1;
SetCountText ();
}
}
주요 키워드
CompareTag : 해당하는 태그를 찾는다.
SetActive : 컴포넌트에 토글? 켜고,끄기
OnTriggerEnter: Collider가 다른 트리거 이벤트에 침입했을 때 호출
(지금 위 코드에서는 pick up 태그가 붙은 오브젝트(노란상자)에 Collider가 닿으면 count를 1증가한다.)
'유니티 > 레퍼런스' 카테고리의 다른 글
유니티) 오브젝트 찾기(Tag,이름,자식 오브젝트 찾기,꺼져있는 오브젝트) (3) | 2018.12.14 |
---|---|
유니티) 충돌체크 OnTriggerEnter , OnCollisionEnter (Collider, Collision) #2Roll a Ball 로 연습하기 (1) | 2018.12.08 |
유니티) Quaternion / Quaternion.Euler (0) | 2018.12.06 |
유니티) 열거형 Enum사용법 (0) | 2018.12.06 |
유니티)월드 좌표, 로컬좌표, 스크린 좌표, 뷰 포트 좌표 (1) | 2018.12.05 |