본문 바로가기

전체 글475

이벤트 이벤트 사용 이유: 두 오브젝트 사이에 커플링이라고 부르는 직접도를 없애기 위해서 이벤트는 기본적으로 publisher와 subscriber로 나눠서 두개 사이의 커플링을 낮춰주고 동시에 델리게이트를 사용할 때 이벤트란 키워드를 사용하면 좀 더 엄격하게 델리게이트를 이벤트에 맞춰 사용할 수 있단 얘기! 커플링: 두 오브젝트가 잘 알고지내고 하드하게 연결되어있는 정도 커플링이 심하다: A, B 오브젝트가 서로 심하게 엮어있어서 A가 없어지면 B가 영향을 받기 떄문에 코드를 수정하기 쉽지 않다는 것. 코드를 깔끔하게? : 커플링을 줄이는데 집중 publisher : 어떤 이벤트를 쥐고 발동 시키는 측 subscriber : 어떤 이벤트에 자기 자신의 기능을 등록시켜놓고 대기하는 측 publisher은 이벤트.. 2021. 7. 21.
델리게이트 델리게이트: 어떠한 기능을 목록에 추가해두면 델리게이트가 기능들을 대신 발동시켜줌. 1) 대신해줄 친구의 서식을 명시하고 2) 그러한 델리게이트 타입의 변수를 새로 만들어준 다음, 3) 대행해줄 친구를 명단에 등록! 4) 그 다음에 그 친구를 발동만 시켜주면 됨! 상황: Calculator 오브젝트를 만들어보자 Update()함수에서 어떤 계산을 할지 명시를 해줘야 함. 즉 계산기가 어떤 계산을 할지 계산 하는 순간에 알고 있어야 함. 이 방법의 단점은 계산하고 싶은게 달라졌을 때 Update안의 코드를 바꾸지 않는 이상 변경사항을 적용할 수 없음 Update 안에는 코드 바꿀 필요 없이 계산 한다는 것만 명시해주고 계산의 내용은 실시간으로 바꿀 수 있게 어떤 사람이 죽기 전에 유언 리스트에다 자기가 하.. 2021. 7. 20.
유니티 이벤트 이벤트: 이벤트가 발동 되면 그 사건에 등록해놓은 기능들이 자동으로 딸려들어가서 같이 발동이 됨 이벤트를 발동시키는 측, 그 이벤트에 기능을 등록해놨던 측 모두 서로에게 관심이 없음. 즉 이벤트에 기능을 등록해놓은 오브젝트들은 기능을 등록해놓고 그게 언제 발동될지 신경을 전혀 안씀. 또한 이벤트를 발동시키는 측도 자기 이벤트에 어떤 친구들이 등록이 됬는지 전혀 신경쓰지 않고 이벤트를 발동시켜버림. 장점: 서로에게 관심이 없기 때문에 코드가 꼬일 일이 없음. 상황 설정: 플레이어가 죽었을 때 여러가지 기능이 동작해야함 UI에 플레이어가 죽었다고 뜨고, 도전 과제가 해제되고, 게임을 재시작하는 기능 등을 발생시켜야함. 이 기능들을 플레이어의 죽음과 연계시킬 때 코드를 좀 더 깔끔하게 짜고 싶음 Player가.. 2021. 7. 20.
유니티에서 임포트패키지 밑에 여러 패키지들 안보일 때 유니티 설치할 때 패키지 설치한다는 옵션을 선택 안해서... 2021. 7. 20.
볼 슈터, OnEnable() ShooterPivot 자식으로 FirePos라는 빈 게임오브젝트를 만들고 위치를 Barrel 앞으로 BallShooter.cs 변수설정 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class BallShooter : MonoBehaviour { //ball 프리팹을 가져와서 찍어낼 것임,rigidbody로 찍어내면 바로 힘 갖다 쓸 수 있음 public Rigidbody ball; //발사할 위치 public Transform firePos; //슬라이더 UI value 수정 public Slider powerSlider; //포탄 소리 재생 위한 Audi.. 2021. 7. 20.
프로퍼티 프로퍼티: 밖에서 보면 변수처럼 처리하지만 안에서 보면 특수한 처리 넣을 수 있는 기능 바깥에서는(Test.cs) point가 함수처럼 내부 처리가 들어간다는 사실을 숨김으로써 마음 편하게 사용할 수 있게 함. 함수로 만들면 똑같이 구현을 할 수 있지만 코드가 복잡해지거나 심적인 부담감이 있음. 그레서 밖에서는 변수처럼 편하게 사용하고 안에서는 어떤 처리를 넣어서 코드를 간단하게 말들 수 있음. 또 다른 예시 2021. 7. 19.