unity/유니티 초보 23

[Unity] 물리엔진 물리이동 정리

이 글은 유니티 개발의 정석 책을 읽은뒤 이를 바탕으로 작성하였습니다. 유니티에서 rigidbody를 설정하고 collider을 설정하였을때 transform으로 이동할 경우로 rigidbody로 이동할 경우 어떻게 대비해야되는지 항상 고민이 많았다 이때 위 책을 읽은뒤 모든 정리가 끝났다. 1. transform으로 이동할때-> rigidbody : isKinematic 2. 물리로 이동할 경우-> rigidbody : NonKinematic 3. 움직이지 않는경우-> no rigidbody 이렇게 자신에게 맞는 방식대로 설정해 줘야 trigger영역이나 collider영역이 알맞게 움직여 충돌이 예상대로 이루어 진다 추가물리엔진을 이용한 이동이나 힘의 작용의 경우 동일한 환경에서 약간의 차이가 발생할..

[Unity] 간단한 문 열기만들기 - joint

이번에 조인트라는 기능을 알게되어 간략하게 joint를 사용해 문을 여는 것을 만들어 보려고한다결과1. 원하는 문에 hint joint컴포넌트를 달아준다axis의 y를 1로 설정해 주어 y축 회전을 막아준다anchor를 -0.5로 변경하여 중심점을 문의 가운데가 아닌 왼쪽으로 설정해 준다Use Spring의 경우 반동을 줄지 말지 결정해 주는것인데 원래 상태로 돌아오는문을 만들고 싶으므로 설정해준다UseAcceleration 경우 감속을 할지 말지 설정해주는것이다 2. 힘 적용z축에 force만큼의 힘을 가하는 코드이다바로바로 힘을 가해보고 싶으므로 약간의 Edior를 가미해 주었고 주요 코드는 Throw다using UnityEditor;using UnityEngine;[CustomEditor(typeo..

unity - Shader Graph 정리 (1) Adjust, Blend

1. Adjust Channel : 색을 빼앗는다Contrast : 색 대비Hue : 색 스펙트럼 변경invert Colors : 색반전? 해당하는 색의 느낌으로 점차 변경해 준다 색반전 경우에는 OneMinus를 사용해도 어느정도 느낌이 난다White Balance : 색 온도 설정 및 강도 설정Replace Color : 색 변경및 영향 범위 설정Saturation : 흑백 반전 2.Blend말 그대로 2가지의 텍스쳐를 서로 Mode에 따라 섞어주는데 Adobe Pro를 사용해보았으면 익숙하겠지만 그렇지 않다면 너무 많아서 하나하나 결과를 확인하는것이 더 편해보인다Overlay 는 텍스처를 서로 거의 0.5 : 0.5비율로 나타내 주는것 같다  음 나머지 기능들도 정리하려고 했지만 나머지 기능들은 직..

unity - 기어가는 달팽이 <2D bone 애니메이션 제작>

스프라이트가 연속되는 방식이 아닌것으로 애니메이션을 제작해 보고자 시도해 보았습니다 결과   1. SpriteEditor를 열고 Skinning Edior를 클릭해 줍니다 2. Createbone을 통해 뼈대를 잡아줍니다클릭후 이미지를 더블클릭하면 뼈대를 그릴수 있습니다. 3. Auto Weights를 통해 뼈대의 영향 정도를 설정해 줍니다 - Generate를 누르면 됩니다이는 Weight Brush를 통해 영향력을 수정할 수 있지만 대부분 이로 충분할 겁니다  4. Aplly로 적용해 준뒤 달팽이에 SpriteSkin을 달아줍니다 5. 이제 애니메이션을 달아줍니다저는 중간의 뼈대의 스케일 크기를 조정하여 꿈틀대를 움직임을 표현하였습니다 6. 기초 움직임 코드로 움직여 보면 완성입니다using Unit..

Unity2D 절차 지향적 맵 생성

2D 타일맵을 검색해 보면 BSP 알고리즘을 이용한 생성과 간단한 절차 지향적 알고리즘을 이용한 생성을 많이 소개합니다그중 절차 지향적으로 랜덤맵을 생성하는 방법을 시도해 보았습니다 결과  타일맵 코드1. 기본 랜덤 타일기본적으로 던전을 실행하면 화면상의 타일맵을 초기화 하고 다시 타일맵을 생성합니다using UnityEngine;namespace PKW_Tilemap{ public abstract class DungenGeneratorBase : MonoBehaviour { [SerializeField] protected TilemapVisualizer tilemapVisualizer; // 시각화 도구 [SerializeField] protected Vector2I..

Unity - prefab을 이용한 간단한 ObjectPool

using System.Collections;using System.Collections.Generic;using UnityEngine;/// /// prefab의 고유 HashCode를 key로 사용하여 prefab관리/// Get("Your Prefab") 함수를 통해 사용 가능한 오브젝트를 반환/// public class ObjectPoolTest : MonoBehaviour{ [SerializeField] GameObject _prefab; private Dictionary> _pool = new Dictionary>(); private void Update() { if (Input.GetKeyDown(KeyCode.Space)) { ..

Unity 카메라 기능들 정리

1. MouseLookAt | 마우스를 이용한 부드러운 바라보기2. Shake | 스페이스바를 이용하여 카메라 떨림 구현3. 계속 추가예정using System.Collections;using UnityEngine;public class CameraTest : MonoBehaviour{ [SerializeField] Transform target; [SerializeField] float mouseXSpeed = 10f; [SerializeField] float mouseYSpeed = 10f; //카메라 pivot값 [SerializeField] Vector3 cameraPivot = new Vector3(0.2f, 1.5f, -2f); // 마우스 회전값 floa..