728x90
C# 유니티 함수 OnCollisionEnter & OnTriggerEnter
충돌 메서드의 형태는 OnCollisionEnter()와 OnTriggerEnter()이 있다.
- 게임 프로그래밍/C#
- · 2021. 8. 8.
728x90
using System; namespace backjoon { class Program { static void Main(string[] args) { string a = Console.ReadLine(); string b = Console.ReadLine(); Console.WriteLine(int.Parse(a) * (int)Char.GetNumericValue(b[2])); Console.WriteLine(int.Parse(a) * (int)Char.GetNumericValue(b[1])); Console.WriteLine(int.Parse(a) * (int)Char.GetNumericValue(b[0])); Console.WriteLine(int.Parse(a) * int.Parse(b)); } ..
충돌 메서드의 형태는 OnCollisionEnter()와 OnTriggerEnter()이 있다.
그라운드를 좌/우로 회전하게 하는 스크립트를 작성했다. 먼저 float 타입의 zRotation 변수를 선언하고 현재 z축의 회전량인 transform.localEulerAngles.z을 저장했다. 그리고 zRotation 값에 사용자의 Input이 있는 경우 -1(왼쪽), +1(오른쪽)만큼 움직일 수 있게 Input.GetAxis("Horizontal)"을 추가했다. 여기서 Input값을 -로 빼주었는데, 유니티 상에서 오른쪽으로 회전하려면 - 값이 들어와야 하는데 우클릭이 +1로 나타나기 때문에 반대로 움직이도록 하기 위함이다.(+로 더해주면 우클릭 시 ground가 왼쪽으로 도는 현상 발생) 그리고 그 zRotation 변화값을 new Vector3라는 새로운 transform 값으로 지정해주었다...
움직이는 ball 오브젝트를 카메라가 따라가는 연출을 주는 스크립트를 작성했다. GameObject ball이라는 멤버변수를 선언하고, Start()메서드에서 Gameobject.Find 함수를 적용했다. 그리고 Update() 내 카메라의 position을 new Vector3의 ball.transform.position 좌표 값에 적용했다. ball.transform.position에 적용된 정수(+3, -14)는 오브젝트와 적당한 거리를 두고 따라가도록 설정한 임의값이다.
유니티에서는 인스펙터 창에서 콤포넌트를 추가해주는 것 외에, 스크립트로 직접 콤포넌트를 만들어줄 수 있다. Start()메서드 내 Rigidbody 콤포넌트를 다음과 같이 추가해 주었다. myRigidbody라는 변수 이름을 설정해 주었고, GetComponent()를 가져오면 된다. Debug.Log값은 인스펙터 창의 Rigidbody 콤포넌트에서 Use Gravity 체크박스를 활성화하면 True 값을, 비활성화하면 False를 리턴하게 된다. 그 다음으로는 SphereCollider를 myCollider 멤버 변수로 선언해주었다. Start()메서드 안에서 GetComponent()로 콤포넌트를 가져온 후, Update()메서드 내 myCollider.radius 즉, 원형 콜라이더의 반지름이 매 ..