본문 바로가기

분류 전체보기

(61)
12월6일공부 오늘은 버튼 쿨타임을 구현해보려고 했습니다. 사용전 ui입니당 버튼을 누르게 되면 이렇게 연출이 되도록 했습니다 코드로 특정 이미지의 Fill Amount를 1에서 0으로 바꾸도록 설정해 이런 효과를 만들어봤습니당 물론 버튼 클릭시 n초동안 1에서0으로 하도록했고 중복 작동을 피하기 위해 n초동안 버튼이 비활성화가 되게 했습니당
12월4일 공부 더보기 using System; using UnityEngine; using UnityEngine.UI; public class Nexus : Unit { public Action OnDestroyNexus; public Action OnDamagedNexus; public Action OnHealedNexus; public NexusSO Data; public Slider healthSlider; // Unity Inspector에서 설정하기 위한 Slider 변수 private float timeSinceLastHeal; private float healInterval = 1f; private void Update() { timeSinceLastHeal += Time.deltaTime; if (tim..
11월29일 공부 오늘은 추가만 몇개 했습니다. 더보기 using System.Collections; using UnityEngine; using UnityEngine.UI; public class Buff : MonoBehaviour { [SerializeField] private NexusSO data; public static int currentMP; public Button DamageButton; public static int damagebuff = 100; private float damagebufftime = 5f; private bool cooltime; private void Start() { cooltime = true; currentMP = data.MaxMP(); if (DamageButton !..
11월28일 공부 스크립터블 오브젝트를 정리해보자 일단 스크립터블 오브젝트란 스크립트 인스턴스에 관계 없이 대량의 공유 데이터를 저장하는 데 사용할 수 있는 직렬화 가능한 Unity 클래스입니다. 스크립터블 오브젝트를 사용하면 변경 사항과 디버깅을 관리하기가 더 쉬워집니다. 진행하면서 필요한 것을 더 쉽게 변경하고 적절히 수정할 수 있도록 게임 내 여러 시스템 사이에 유연한 커뮤니케이션 레벨을 빌드하고 컴포넌트를 재사용할 수도 있습니다. 라고 정의되어있지만 사실 이렇게만 쓰면 모른다 이렇게 유니티내에서 만들 수 있는데 이렇게 스크립터블 오브젝트를 쓰면 인스펙터에서 여러가지 데이터들을 관리하기 쉬워진다 예시로 나는 타워의 공격력,사거리,HP,코스트 등 다양한 수치를 밸런스 조정하는데 썻다
11월22일공부 모든 몬스터가 죽게끔 하도록 만들었습니당 일단 버튼을 만들어주고 몬스터가 라운드 매니져로 생성되니까 라운드 매니저에서 지워주면 되겠다 싶어서 만들었습니다. 대신 문제가 한번 사용하면 더 못사용하던데 그것만 해결하면 될거같습니당....
11월20일 공부 포탑의 공격력을 증가시키는 버프를 만들었다 2일?정도 걸렸는데 다른사람의 스크립트를 건들지않고 하려니 안되어서 결국 스크립트를 건들고 완성하게 되었다 터렛의 공격력을 결정하는 부분에 추가 공격력을 주는 메서드와 시간이 지나면 다시 원래 공격력으로 되돌아 가는 메서드를 만들었다.. 버튼을 통해 증가시키게 하였으며 임시로 코루틴을 통해 반복할수있게 하였다 아마 추가적으로 mp를 만들어 mp를 소모해야지 공격력이 증가하도록 할거같다.
11월15일 공부 더보기 public class Stop : MonoBehaviour { private void Start() { // 초기화 코드 // 이 스크립트를 게임 오브젝트에 추가하고, 호출하고 싶은 곳에서 FreezeObjects 함수를 호출하면 됩니다. } public void FreezeObjectsForDuration(float duration) { // 움직임을 멈추기 전에 현재의 Time.timeScale 값을 저장 float originalTimeScale = Time.timeScale; // 모든 Rigidbody2D 컴포넌트를 찾아서 잠시 정지 Rigidbody2D[] allRigidbodies = FindObjectsOfType(); foreach (Rigidbody2D rb in allRigi..
11월 13일 공부 오늘은 프로젝트 발표날이었습니다.. 제가 받은 피드백에 대해 한번 설명해보는 시간을 가지겠습니다 일단 저는 화면오른쪽 위에 있는 미니맵을 랜더 텍스쳐 (Render Tuxture)을 사용했는데 이게 프레임 드랍의 원인이 될 수 있다 포지션을 계산해 넣어보라구 하셨습니다................ 최적화를 이제 신경써야 할 때가 와서 참 신기하네용