본문 바로가기
  • 불확실한 내일을 위해
728x90

유니티 C#/C#48

C#기초 - 이동과 점프 구현할 때 Transform와 Rigidbody 충돌 오류 유니티에서 오브젝트에 이동 구현 스크립트를 적용하려면 Transform 컴포넌트 설정이 필요하고,점프 구현 스크립트를 적용하려면 Rigidbody 컴포넌트를 추가하여 설정해야 한다. 따라서 오브젝트에 이동과 점프 둘 다 구현을 하려면 Transform과 Rigidbody 컴포넌트 둘 다 필요하다. (이동과 점프 구현 스크립트는 아래 참고) 이동 구현 스크립크 : https://greenchoco.tistory.com/223 C#기초 - 방향키로 이동하기 (Input Manager, GetAxis, Vector3)유니티는 Input Manager 키를 불러와서 GetAxis로 수치화 한 후 이를 Vector 에 적용시킬 수 있다.  (참고 : Input Manager와 GetAxis https://gree.. 2024. 5. 1.
C#기초 - 스페이스바 점프 구현하기 (Getkey, Addforce함수) 스페이스바를 눌렀을 때 오브젝트가 점프할 수 있도록 하는 방법은 어렵지 않다. 1. 오브젝트가 떨어지지 않게 땅 오브젝트 (Plane)을 추가해준다.1. 플레이 할 플레이어 오브젝트에 Rigidbody 컴포넌트를 추가한다.2. 플레이어 오브젝트의 스크립트에 Rigidbody 컴포넌트를 가져와서 저장한다.3. If함수와 GetKey함수를 이용하여 스페이스바를 누르면 작동하도록 작성한다.4. Rigidbody에 AddForce함수를 적용시켜 순간적인 물리적 힘이 작동하도록 한다.5. AddForce함수에 인수를 입력하여 힘의 방향과 강도를 정한다.  이를 정리한 스크립트는 아래와 같다. using System.Collections;using System.Collections.Generic;using Unit.. 2024. 4. 30.
C#기초 - isTrigger에 따른 OnCollision함수와 OnTrigger함수 isTrigger은 오브젝트 컴포넌트 중 콜라이더에 있는 기능이다.선택하면 충돌 시 통과하지만 충돌은 감지할 수 있고, 선택하지 않으면 통과하지 않고 충돌이 일어난다.  isTrigger이 체크되어 있지 않은 상태에서 충돌할 때 호출되는 함수는 OnCollision 함수고, 종류는 아래와 같다.OnCollisionEnter() : isTrigger가 비활성화일 때, 충돌이 발생한 순간 호출 OnCollisionStay() : isTrigger가 비활성화일 때, 충돌이 지속되는 동안 호출OnCollisionExit() : isTrigger가 비활성화일 때, 충돌이 끝나는 순간 호출 isTrigger이 체크되어 있을 때 충돌할 때 호출되는 함수는 OnTrigger 함수고, 종류는 아래와 같다.OnTrigge.. 2024. 4. 30.
C#기초 - Addforce함수와 ForceMode 종류 AddForce함수는 물리 작용을 이용해 힘을 발생시키는 함수다. 물리 작용을 사용하기 때문에 AddForce함수를 적용하기 위해서는 해당 오브젝트에 Rigidbody 컴포넌트가 추가되어있어야 한다. AddForce함수는 2가지 인수를 갖는데, 첫 번째는 힘을 가할 방향과 크기를 담은 벡터를 지정하고, 두 번째로는 힘의 방식을 지정한다. 보통 많이 사용하는 방식은 아래와 같다. Rigidbody = rb // 오브젝트의 Rigidbody를 rb 라고 지정한다.void start{ rb = GetComponent(); // rb를 가져와 저장한다.}if ( ... ) // ...라는 조건이 있을 때{ rb.Addforce(인수1, 인수2); // 인수1의 힘 방향과 인수1의 방식으로 힘을 발생시킨다. .. 2024. 4. 30.
C#기초 - 방향키로 이동하기 (Input Manager, GetAxis, Vector3) 유니티는 Input Manager 키를 불러와서 GetAxis로 수치화 한 후 이를 Vector 에 적용시킬 수 있다.  (참고 : Input Manager와 GetAxis https://greenchoco.tistory.com/221) 유니티 기초 - Input Manager 시스템으로 입력신호 관리하기유니티에서 키보드로 이동하는 함수를 만들 때 입력 신호 조건문을 만들어 구현할 수 있다.예를 들어 W를 눌렀을 때 앞으로 이동하려면 아래처럼 구현하면 된다. if(Input.Gatkey(KeyCode.W)){ 앞으로greenchoco.tistory.com(참고 : Vector https://greenchoco.tistory.com/142) C#기초 - 벡터 사용법 (Vector3, Vector2)Vect.. 2024. 4. 29.
C#기초 - 이동 함수와 인수 종류 (키보드, 마우스, 모바일) 키보드 등의 입력 신호를 감지하기 위해서는 유니티에서 제공하는 input 클래스를 사용해야 한다.input 클래스에서 자주 사용하는 함수와 변수는 아래와 같다.  1. 마우스와 터치에 사용되는 함수함수설명GetMouseButtonDown(int button)마우스 : "왼쪽 버튼을 누른 순간" true를 반환.모바일 : "화면을 탭하는 순간" 으로 인식.GetMouseButtonUp (int button) 마우스 : "왼쪽 버튼에서 손가락을 뗀 순간" true 를 반환.모바일 : "탭하던 화면에서 손가락을 땠을 때" 로 인식.GetMouseButton(int button) 마우스 : "왼쪽 버튼이 눌려있는 동안 계속" true를 반환. 모바일 : "화면을 터치 중일 때" 로 인식.  - 위 함수의 매개변.. 2024. 4. 26.
C#기초 - Destroy 함수 사용법 Destroy 는 오브젝트를 삭제하는 함수이다. 만약 변수가 player라고 선언되어있다면 Destroy(player); 라고 작성하면 되고 플레이하면 해당 오브젝트는 사라진다. 2024. 4. 23.
C#기초 - FindObjectOfType 함수 사용법 FindObjectOfType는 특정 컴포넌트를 검색할 수 있는 함수이다.씬 내에서 특정 컴포넌트를 검색할 수 있는데 Transform처럼 모든 오브젝트가 갖는 컴포넌트를 검색할 때 사용하면 정확히 어떤 컴포넌트를 반환할지 확실하지 않기 때문에 씬 내의 유일한 컴포넌트를 검색할 때 사용하는 것이 좋다.  예를 들어 아래처럼 Directional Light 의 기본 인스펙터인 Light 컴포넌트를 찾는 스크립트를 만들려면  아래처럼 작성하면 된다. using System.Collections;using System.Collections.Generic;using Unity.VisualScripting;using UnityEngine;public class Stury6_find : Mon.. 2024. 4. 23.
C#기초 - FindGameObjectWithTag 함수 사용법 캐릭터를 모두 검색하고 싶은데 캐릭터의 이름이 다 다르다면 일반 Find 함수를 쓰기에는 적절하지 않다. 하지만 캐릭터에 동일한 이름의 태그를 부여해주면 한번에 캐릭터를 찾을 수 있다. 태그는 인스펙터창에서 확인하거나 변경할 수 있다.태그를 이용하여 찾는 함수가 바로 FindGameObjectWithTag 이다.FindGameObjectWithTag 함수는 동일한 씬 내에서 특정 태그를 가진 오브젝트를 찾아 반환한다. using System.Collections;using System.Collections.Generic;using Unity.VisualScripting;using UnityEngine;public class Stury6_find : MonoBehaviour{ .. 2024. 4. 23.
C#기초 - Find함수 사용법 및 예시 find 함수는 컴포넌트를 검색하여 이름을 검색하여 가져오는 것을 말한다.예를 들어 GameObject.Find() 함수의 인수로 오브젝트 이름을 지정하면 씬 내에서 해당 오브젝트를 찾아 GameObject 타입으로 반환한다.  -Find함수 예시using System.Collections;using System.Collections.Generic;using Unity.VisualScripting;using UnityEngine;public class Stury6_find : MonoBehaviour{ public GameObject findCamera1; // 변수선언 void Start() { findCamera1 = GameObject... 2024. 4. 23.
728x90