유니티 버튼 클릭 이미지 변경하는 방법
·
Unity
using UnityEngine;using UnityEngine.EventSystems;using UnityEngine.UI;public class ButtonImageChanger : MonoBehaviour, IPointerDownHandler, IPointerUpHandler{ private Button _button; //버튼 private Image _buttonImage; //버튼 이미지 [SerializeField] private Sprite normalImage; // 기본 이미지 [SerializeField] private Sprite pressedImage; // 눌림 이미지 private void Awake() { _butt..
유니티 2D 콜라이더 합치기
·
Unity/2D
문제 발생 타일맵으로 바닥 타일을 제작하던 도중,Tilemap Colider를 사용하니 쓸데없이 많은 콜라이더가 생성되었다.콜라이더가 많을경우 물리업데이트 필요한 모양수가 많아짐으로, 계산량이 늘어나서 성능 저하가 생길 수 있다. 따라서 방법을 찾던도중 Composite Colider2D를 알게 되어 적용하여 문제를 해결하였다. 해결 방법 사용하고있는 Tilemap Colider 2D 컴포넌트의 Used By Composite 설정을 체크해줘야한다.큰 차이는 없지만 Max Tile Change Count도 1000개까지는 필요없을 것 같아서 100개로 줄여주었다.  이후 Tilemap2D Colider의 부모 오브젝트에 Composite Colider 2D 컴포넌트를 추가해주면자동으로 Rigidbody ..
유니티 2D RuleTile 규칙 유의사항
·
Unity/2D
문제 발생룰타일로 규칙을 설정하고, 언덕을 만들던 도중,언덕 사이에 있는 블럭이 계속 엉뚱한걸로 배치되었다.   해결 방안 유니티에서 규칙이 애매할경우, Default Sprite로 자동으로 배치해주는 것 같다.따라서 위 사진처럼 Default Sprite를 원하는 타일로 변경하여 해결하였다. 참고자료: 유니티 Docshttps://docs.unity3d.com/Packages/com.unity.2d.tilemap.extras@1.6/manual/RuleTile.html
유니티 모바일 프레임
·
Unity
유니티에서는 모바일 프레임이 60이 안나오면 30으로 고정시킨다고한다.따라서 60으로 바꾸고 싶다면 따로 설정을 해줘야한다. https://docs.unity3d.com/ScriptReference/Application-targetFrameRate.html Unity - Scripting API: Application.targetFrameRateAn integer. The default value of Application.targetFrameRate is -1. In the default case, Unity uses the platform's default target frame rate. Otherwise, targetFrameRate is a positive integer representing ..
프로그래머스 C# 가장 가까운 글자
·
알고리즘
문제설명 문제풀이이번 문제의 핵심은 문장이 주어졌을때, 해당 문장의 중복되는 글자가 있는지 체크하고,중복되는 글자가 몇 칸 앞에 있는지 파악하는것이 핵심인 문제였다. 따라서 중복되는 글자가 있는지 확인하는 bool 값 isHas를 이용해, 중복되는 값이 있다면 List answer에 count를 추가하고, 중복되는 값이 없다면 -1을 추가하도록 구현하여 문제를 해결하였다. using System;using System.Collections.Generic;public class Solution{ public int[] solution(string s) { List answer = new List(); for (int i = 0; i = 0; j--) ..
프로그래머스 C# 두 개 뽑아서 더하기
·
알고리즘
문제설명 문제풀이 1. 이중 for문을 이용해 모든 숫자끼리 더한다2. List의 Contains를 활용하여 더한 수가 이미 존재한다면 리스트에 담지 않는다.3. List의 sort를 통해 오름차순 정렬을 한다.4. 이후 ToArray() 함수를 활용하여 List를 배열로 변환하여 값을 반환한다. using System;using System.Collections.Generic;public class Solution { public int[] solution(int[] numbers) { List answer = new List(); for(int i = 0; i
[유니티] InputSystem이 동작안하는 오류
·
Unity
문제원인 위처럼 OnAttack이라는 함수를 이용해, 마우스 왼쪽버튼을 누르면 "공격버튼 눌림"이라는 메세지를 띄우려고 했으나,동작하지 않았다. 해결방안 Input System Package -> Supported Devices에 마우스를 추가하지 않아서 생긴 오류였다.
[유니티] You are trying to read Input using the UnityEngine.Input class, but you have switched active Input handling to Input System package in Player Settings.
·
Unity
문제원인Project -> Player -> OtherSetting -> Configuration -> Active Input Handling을 InputManager로 했었는데.시뮬레이션 상으로는 Both로 세팅해야하나보다. 해결방안 setting을 Both로 변경하여 오류를 해결하였다.