목록Unity (24)
개발일기
void Start(){ Application.targetFrameRate = 60;}프레임을 고정하는 데에 사용할 수 있으니 넣어야겠다 싶으면 GamaManager에 딱 1개 넣어두자 [SerializeField] ParticleSystem headEffect;void OnCollisionEnter2D(Collision2D collision){ bool isGround = collision.gameObject.CompareTag("Ground"); if (isGround) { headEffect.Play(); Invoke(nameof(RestartGame), 2f); }}void RestartGame(){ SceneManager.LoadScene(0)..
얘기해볼 것이 많다 패키지 매니저에서 Input System 패키지를 확인할 수 있다내가 보기엔 애초에 기본적으로 설치되어있던 것 같긴한데 어쨋든 확인해보면 좋을 테고만약 이 패키지가 있다면 오브젝트에 Player Input 컴포넌트를 추가해줄 수 있다이 컴포넌트를 사용하는 것이 PlayerMovement.cs에서 직접 인풋을 받는 것 보다 나은 이유가 뭐냐면, PlayerMovement.cs에서 OnMove(InputValue value)나 OnJump() 등의 사기적인 함수들을 기본적으로 사용할 수 있기 때문이다그 외에도 Behavior에 보이듯이, OnAttack이나 OnInteract 등의 함수들도 쓸 수 있다본인이 Player 오브젝트를 좀 친다 그러면 이 패키지를 꼭 써보자using Unity..
빵야빵야// Assets/Scripts/PlayerSystemManager/InventorySystem/ItemUsingController.cspublic class ItemUsingController : MonoBehaviour{ void Shoot(Item item) { Vector3 mouseWorldPos = Camera.main.ScreenToWorldPoint(Input.mousePosition); mouseWorldPos.z = 0f; Vector3 direction = (mouseWorldPos - throwOrigin.position).normalized; Vector3 endPoint = throwOrigin.position + d..
인벤토리 슬롯은 24칸으로 늘려줬다. 8의 배수니까.인벤토리 생성도 퀵슬롯과 거의 똑같이 해줬다. 단, 퀵슬롯에서는 slots가 RectTransform[]이었던 것에 반해, 인벤토리에서는 slots가 InventorySlot[]이었기 때문에, InventorySlot에 rectTransform 속성을 추가해주어 처리했다.그리고 배치가 간단하고 수월했다. 극좌표계 저리가 절대좌표계 만세중간에 클릭 핸들러라는 놈이 보일텐데, 저 놈이 오늘의 주인공이 될 녀석이다.// Assets/Scripts/PlayerSystemManager/InventoryManager.cspublic class InventoryManager : MonoBehaviour{ void CreateInventory() { ..
진짜 개 어렵다우선 파일 구조부터 정리Assets/├──Class/│ └──Item.cs├──Prefabs/│ ├──Masterball(Prefab Asset)│ ├──Pokeball(Prefab Asset)│ └──Slot(Prefab Asset)├──Resources/│ └──Items/│ ├──Masterball(Item)│ └──Pokeball(Item)├──Scripts/│ ├──PickableObject.cs│ └──PlayerSystemManager/│ ├──InventoryManager.cs│ ├──InventorySlot.cs│ ├──ItemUsingManager.cs│ ├──PlayerStatusManager.cs│ └──Q..
갑자기 만들고 싶어서 만들어봤다.우선 잘 구르는 느낌을 내고 싶어서 Circle로 만들었고, Rigidbody2D와 Collider2D도 적용시켜줬다.근데 캐릭터와 공이 부딪혀서, 잘못하면 줍기에 귀찮을 수도 있겠다 싶어서 플레이어와의 충돌을 끄려고, Layer 설정을 해줬다.Player Layer랑 IgnoreColiisionWithPlayer Layer로 설정해주고, Edit>Project Settings>Physics2D>Layer Collsion Matrix에서 서로 충돌 안 하도록 설정해주었다. 그러고선 아래 사항만 적고선 코드 짜달라고 GPT한테 가져다 줬는데, 세부적인 것만 제외하면 잘 짜주더라.코드 중간중간 요청사항에 보이지 않는 부분은 내가 직접 수정한 거다. + 공이 자꾸 벽에 충돌 안..
사실 거의 반 야매로 하던걸 이번 기회에 제대로 배워보았다Animation Controller랑 Animation Clip이 있고, 오브젝트 컴포넌트에는 Animator가 있는데Animator에서는 ANimation Controller를 받을 수 있고, Animation Controller에서는 Animation Clip과 각종 옵션을 설정해둘 수 있다그 중에서도 나는 Parameters로 상태들을 변환해줬는데, Parameters에는 Float Int Bool Trigger가 있다만약 설정만 다 잘 해줬다면 스크립트에서 Animator로 접근해 Animation Controller로 접근해서 애니메이션 재생을 통제할 수 있단 거다using UnityEngine;public class PlayerMove..
플레이 화면의 비율 Aspect는 Game 창에서 설정할 수 있다. File > Save As .. (Ctrl Shift S)에서 게임씬을 저장할 수 있다. 이후 File > Build Profiles (Ctrl Shift B) > Scene List에서 설정할 수 있다. Collider를 수정하고 싶을 땐 Edit Collider 버튼을 누르면 된다 Rigidbody2D 컴포넌트에는 Collision Detect 설정에 Discrete와 Continuous가 존재하는데, 각각 불연속과 연속을 뜻한다.Continuous는 좀 더 부드러운 대신 용량을 조금 잡아먹을 수 있으므로, 알아서 잘 딱 깔끔하고 센스있게 설정해주자. Prefab의 Collider를 수정하려면 Inspector 상단의 Open을 눌..
