본문 바로가기

전체 글132

[Unity] Raycast Ray - 직선의 시작점과 방향 받아오는법오브젝트Ray ray = new Ray(transform.position, transform.forward);  카메라 중심Ray ray = Camera.main.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0)); 마우스Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);  Raycast - Ray에 맞은 물체가 무엇인지 여부를 판단 후 처리. - Ray, RaycastHit, MaxDistance, LayerMask 등이 속함 RaycastHit - Raycast에 의해 검출된 객체의 정보가 담겨있다.- 검출되는 정보가 있다면 true, 없다면 false를 반환- Brick.. 2024. 5. 24.
[Unity] Rigidbody - ForceMode Rigitbody 컴포넌트에서 AddForce() 를 사용할 때두 번째 인자에 대양한 힘 적용 방식을 설정할 수 있다.    1. Force- 힘을 지속적으로 적용Rigidbody.AddForce(Vector3 force, ForceMode.Force);  2. Acceleration- 가속도를 적용Rigidbody.AddForce(Vector3 force, ForceMode.Acceleration);  3. Impulse- 순간적인 힘을 적용- 짧은 시간에 갑작스러운 움직임 발생Rigidbody.Addforce(Vector3 force, ForceMode.Impulse)  4. VelocityChange- 변화하는 속도를 적용- 물체의 현재 속도를 변경하면서 움직임Rigidbody.Addforce(Ve.. 2024. 5. 24.
[Unity] 스카이박스 유니티 3D 프로젝트에는 스카이박스라는 개념이 존재 모양- 큐브 모양으로 공간 구성 가능 (Cube Map)  -> 6면이 존재- 반구 모양의 공간 (Sphere Map)  기능 - 주로 씬의 배경으로 사용됨 - 전체 씬을 렌더링해 수평선에 다양한 배경이 있어 보이게 함- 동적으로 변환가능 -> 낮과 밤 구현 가능- 성능에 영향을 미친다 -> 최적화 주의!!!  프로퍼티 Tint Color - 하늘 & 땅 색깔 변경Exposure - 밝기 조정Rotation - 양의 Y축으로 스카이박스의 회전을 변경Front, etc - 스카이박스를 저장하는 데 사용된 큐브 각 면의 텍스처- 텍스처를 정확한 슬롯에 적용하는 것이 중요!!! 사용 방법1. 스카이박스 material 생성2. Window > Renderin.. 2024. 5. 24.
[Unity] BrickOutGame - 완성 드디어 일주일 간의 벽돌 게임 제작이 끝났다.오늘은 발표를 하고 개발했던 자료들을 정리하는 시간을 가졌다. 팀 Github 페이지  GitHub - JeongEunJi1127/A05-BrickOutGame-Project: 내일배움캠프 팀프로젝트내일배움캠프 팀프로젝트. Contribute to JeongEunJi1127/A05-BrickOutGame-Project development by creating an account on GitHub.github.com  플레이 영상유튜브 링크! 많이 부끄러운 내 목소리..  팀 노션 페이지 5조가쵝5조 | Notion프로젝트 평가 체크 리스트teamsparta.notion.site와이어프레임을 확인할 수 있다. 2024. 5. 23.
[Unity] Collision 속성 Effector - 점프 후 착지 가능한 맵 작성 가능 Composite - 콜라이더 하나로 겹쳐서 사용 가능 Composite Collider - 자식 오브젝트의 콜라이더를 통합 시켜주는 컴포넌트 Auto Tiling - 유니티 스프라이트의 드로우 모드를 타일로 해서 늘리면, 콜라이더는 원래 늘어나지 않는다.- 그러나 오토 타일링을 키면 콜라이더도 같이 늘어난다. 2024. 5. 22.
[Unity] BrickOutGame - 보스 스테이지 오늘은 보스 스테이지를 제작하고보스 스킬을 만들었다. 보스 Hp가 50 미만일 때 랜덤한 벽돌 블럭을 생성하고,Hp가 30, 70일 때 플레이어의 시야를 가려 플레이를 방해한다. BossBrick.csusing System;using UnityEngine;public class BossBrick : Brick{ [SerializeField] private GameObject endingObj; private BossAttack bossAttack; private EndingManager endingManager; protected override void Awake() { base.Awake(); endingManager = endingObj.GetCo.. 2024. 5. 21.
[Unity] BrickOutGame - 충돌 처리 오늘은 도움말 UI, 화면 전환 효과에 사용될 UI 디자인을 마치고 사운드를 연결하였다. 벽돌과 공, 패들 사이에서 발생하는 충돌처리를 팀 논의를 통해 해결하였다.  충돌 이슈우리 팀의 게임에는 공과 패들이 충돌할 때 공의 속도가 우리가 의도한 대로 흘러가지 않는 큰 문제가 있었다.문제는 Ball과 Paddle 각각에 Rigidbody2D 속성이 붙어있기 때문이었다. 두 가지 방법으로 해결하고자 하였다. 1. Paddle의 Rigidbody값을 제거하고 Paddle의 transform.position값으로 움직임을 제어두 개의 Rigidbody값의 충돌로 인해 서로 값에 영향을 주며 발생하는 문제임으로이와 같은 방법으로 수정 가능하였으나, 패들과 벽의 충돌을 감지할 수 없어 Paddle의 transfor.. 2024. 5. 20.
[Unity] BrickOutGame - 오브젝트 풀링 (2) 오늘은 오브젝트 풀링을 이용한 레벨 디자인을 진행했다. ObjectPool 배열 안에 36개의 게임 오브젝트들을 미리 선언해두고레벨 별 Json 데이터를 읽어와 스테이지 별로 Pool 배열 안의 벽돌 데이터를 설정해주었다. BrickData[System.Serializable]public class BrickData{ public int HP; public int Score; public bool IsActive;}[System.Serializable]public class BrickDataList{ public BrickData[] bricks;} 다음과 같은 형태로 BrickData 선언 "bricks": [ { "HP": 10, "Score": 10, "IsA.. 2024. 5. 17.
[Unity] BrickOutGame - 오브젝트 풀링 (1) 오늘은 팀원분들과 와이어프레임 작성 및 기능 분배를 주로 하였다! 내가 맡은 기능은 벽돌 생성 및 패턴 부여이다벽돌 생성과 충돌 부분은 어렵지 않게 금방 구현할 수 있었다.보기엔 이래도 충돌이랑 벽돌 점수 부분은 구현된거다using UnityEngine;public class Brick :MonoBehaviour{ [SerializeField] private int HP; [SerializeField] private int Score; private BrickUI brickUI; private void Awake() { brickUI = GetComponent(); brickUI.UpdateBrickHPTxt(HP); } private voi.. 2024. 5. 16.