분류 전체보기 613

[Stylelized Projectile] 주요 Method

발사체 발사 구현은 ECprojectileActor.cs의 Fire() Code public void Fire() { // 카메라 쉐이킹 if(CameraShake) { CameraShakeCaller.ShakeCamera(); } // 총구 화염 Instantiate(bombList[bombType].muzzleflare, spawnLocatorMuzzleFlare.position, spawnLocatorMuzzleFlare.rotation); // 탄피 if (bombList[bombType].hasShells) { Instantiate(bombList[bombType].shellPrefab, shellLocator.position, shellLocator.rotation); } // 발사체 Rigi..

Unity/Asset 분석 2021.06.20

[RTS Engine] 유닛이 제대로 작동하지 않을 때 체크리스트

1. 전체적 관점에서의 설정 게임시스템 상에 유닛으로 잡혀있어야 한다. 아래 두가지 경우 중 하나여야 한다 ① GameManager의 Fraction에 들어있는 경우 ② UnitSpawner에 의해 생성되는 경우 2. 각 유닛 관점에서의 설정 UnitComponent에서 누락된 것이 없는지 확인 - Model - Fraction Colored Renderers 펼쳐서 확인 각 유닛 설정의 경우, Sample로 제작되어 있는 Unit Prefab과 비교해가면서 원인 찾도록 할 것

Unity/Asset 분석 2021.06.12

게임 일시정지하기

Time.timescale을 이용하여 정지하는 방법 Time.timescale? 시간이 경과하는 크기를 나타냅니다. 슬로우 모션 효과에 사용될 수 있습니다. /timeScale/이 1.0인 경우에, 실제 시간과 같은 속도로 경과합니다. /timeScale/이 0.5인 경우에, 실제 시간과 비교해서 2배 느리게 경과합니다. /timeScale/이 0으로 설정되는 경우에, 일반적으로 프레임비율(framerate)과 독립적으로, 모든 기능을 일시정지 합니다. public void TogglePauseMenu () { if (GameManager.GameState == GameState.running) GameManager.SetGameState(GameState.pause); else if (GameManag..

Unity/Asset 분석 2021.06.11

com.android.tools.build.bundletool.model.exceptions.InstallationException: Installation of the app failed.

기존 프로젝트에 RTS Engine 을 import하고 Build했을 때 나타나는 현상. RTS Engine이 Build Setting 쪽도 변경해서 발생하는 에러. (자기들 로고를 넣는 등..) (Publish Key도 초기화 되어버리니 살펴볼 것) 버전을 마음대로 바꿔버리면서 충돌이 일어나서 생기는 에러이다. Error Installation failed with the following output: Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 The APKs have been extracted in the directory: C:\Users\lipnus\AppData\Local\Temp\5911379885019797321 [BT:0.10.3] Erro..

Unity/Unity 이슈 2021.06.11

Pinch Zoom (두손가락, 세손가락)

두손가락이 다른 곳에 쓰여야 해서 불가피하게 세손가락 Pinch zoom이 필요. ① 세 손가락이 만드는 삼각형의 넓이 변화를 이용. ② 외적을 이용하여 삼각형 넓이 구함 (다른 방법을 써도 무관) 세손가락 Pinch Zoom private float GetPinchZoomValue() { float deltaMagnitudeDiff = 0f; // 세손가락, 삼각형의 넓이 변화 이용 if (Input.touchCount == 3) { Touch[] touch = new Touch[3]; touch[0] = Input.GetTouch(0); touch[1] = Input.GetTouch(1); touch[2] = Input.GetTouch(2); Vector2[] touchPrevPos = new Vec..

터치 드래그로 카메라 이동 (한손가락, 두손가락)

아래 코드는 이동의 Diff를 Vector3값으로 반환하는 매소드이다. 이 값을 이용하여 Camera의 Transform을 조정하면 된다. 한손가락 private Vector2 nowPos, prePos; private Vector2 movePosDiff; private Vector2 getTouchDragValue() { movePosDiff = Vector3.zero; if(Input.touchCount == 1) { Touch touch = Input.GetTouch (0); if(touch.phase == TouchPhase.Began) { prePos = touch.position - touch.deltaPosition; } else if(touch.phase == TouchPhase.Moved..

Touch.deltaposition

Touch에서 position, deltaPosition은 둘다 Vector2 position 현재 터치 위치. 디바이스의 왼쪽하단이 (0,0) x,y축 방향은 고등학교 수학의 1사분면과 같음. deltaPosition 전 프레임에서의 터치 위치와 이번 프레임에서 터치위치의 차이 말 그대로 dX, dY Touch.deltaPosition Leave feedback public Vector2 deltaPosition; Description The position delta since last change in pixel coordinates. The absolute position of the touch is recorded periodically and available in the position pr..

[RTS Engine] 더블탭으로 SelectionBox 그리기

기존 코드를 Mobile에 맞게 수정. 더블탭을 이용하여 SelectionBox를 그리도록 한다. SelectionBox.cs 를 수정. 로그를 보면.. 마우스를 누르고 있는 동안 OnDrawingProgress()가 계속해서 호출 마우스를 떼면 OnDrawingComplete()가 한번 호출된다. 기존 코드에서 #UNITY_ANDROID에서 터치를 받은 후 CatchTouchInput() 매소드에서 모바일 터치 입력을 처리. using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems; namespace RTSEngine { [S..

Unity/Asset 분석 2021.06.08

모바일 더블 터치(Mobile Double Touch) 구현

간단히 구현해 보았음. Code using UnityEngine.UI; using UnityEngine; public class TouchInput : MonoBehaviour { public Text text1; public Text text2; public Text text3; public Text text4; private float lastTouchTime; private const float doubleTouchDelay = 0.5f; void Start() { lastTouchTime = Time.time; } void Update() { if(Input.touchCount == 1) { Touch touch = Input.GetTouch(0); switch (touch.phase) { cas..

scrcpy 실행이 안될 때

Error D:\downloads\scrcpy-win64-v1.17>scrcpy INFO: scrcpy 1.17 ERROR: Failed to execute: [D:\tool\platform-tools], [push], ["D:\downloads\scrcpy-win64-v1.17\scrcpy-server"], ["/data/local/tmp/scrcpy-server.jar"] ERROR: Could not execute "adb push" scrcpy의 고질적인 자체 에러인 것 같음. ① 환경변수, 시스템변수 싹 지운다 ② scrcpy폴더에서 실행해보면 됨. ③ 시스템변수를 다시 등록하니까 또 안됨 ④ 시스템변수 경로 끝에 /adb.exe까지 붙여줘야 함 ①번 과정 없이 바로 4번했을때는 안되었음. Fa..