[링크] 10년간 슈퍼셀을 경영하며 배운 10가지 교훈
'게임이야기' 카테고리의 다른 글
[펌] NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요 (0) | 2020.09.24 |
---|---|
[링크] '투더문' 후속작 공개, 이 시리즈를 기대하는 세 가지 이유 (0) | 2016.01.21 |
[펌] NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요 (0) | 2020.09.24 |
---|---|
[링크] '투더문' 후속작 공개, 이 시리즈를 기대하는 세 가지 이유 (0) | 2016.01.21 |
유니티 데이터 통신 압축용으로 사용 중.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using ICSharpCode.SharpZipLib.BZip2;
public class ZipHelper
{
public static byte[] Zip(byte[] data)
{
return Zip(data, 0, data.Length);
}
public static byte[] Unzip(byte[] data)
{
return Unzip(data, 0, data.Length);
}
public static byte[] Zip(byte[] data, int offset, int size)
{
MemoryStream inStream = new MemoryStream(data, offset, size);
MemoryStream outStream = new MemoryStream();
BZip2.Compress(inStream, outStream, false, 3);
byte[] result = outStream.ToArray();
inStream.Close();
outStream.Close();
return result;
}
public static byte[] Unzip(byte[] data, int offset, int size)
{
MemoryStream inStream = new MemoryStream(data, offset, size);
MemoryStream outStream = new MemoryStream();
BZip2.Decompress(inStream, outStream, false);
byte[] result = outStream.ToArray();
inStream.Close();
outStream.Close();
return result;
}
}
// 예제
//class Program
//{
// static void Main(string[] args)
// {
// byte[] array = new byte[1000];
// for (int i = 0; i < array.Length; i++)
// {
// array[i] = (byte)(i % 255);
// }
// byte[] compress = ZipHelper.Zip(array);
// byte[] decompress = ZipHelper.Unzip(array);
// }
//}
[SharpZip dll 다운로드] https://www.nuget.org/packages/SharpZipLib/
[펌] www 클래스, UnityWebRequest 클래스 사용하기(HTTP 서버에 데이터 가져오기, 보내기 등) (0) | 2020.12.22 |
---|---|
[펌] New Unity Input System: Getting Started (0) | 2020.12.22 |
[링크] Unity 자이로 & 가속도 센서 관련 (0) | 2020.06.09 |
[Unity] 회전 없이 유도(Guided/Homing) 이동 로직 (0) | 2020.05.26 |
[펌] Unity 런타임 중 AndroidManifest.xml에서 meta-data 정보 읽어오기. (0) | 2019.12.04 |
using System;
using Mono.Data.Sqlite;
public class Example
{
static void Main()
{
string cs = "URI=file:test.db";
using (SqliteConnection con = new SqliteConnection(cs))
{
con.Open();
using(SqliteTransaction tr = con.BeginTransaction())
{
using (SqliteCommand cmd = con.CreateCommand())
{
cmd.Transaction = tr;
cmd.CommandText = "DROP TABLE IF EXISTS Friends";
cmd.ExecuteNonQuery();
cmd.CommandText = @"CREATE TABLE Friends(Id INTEGER PRIMARY KEY,
Name TEXT)";
cmd.ExecuteNonQuery();
cmd.CommandText = "INSERT INTO Friends(Name) VALUES ('Tom')";
cmd.ExecuteNonQuery();
cmd.CommandText = "INSERT INTO Friends(Name) VALUES ('Rebecca')";
cmd.ExecuteNonQuery();
cmd.CommandText = "INSERT INTO Friends(Name) VALUES ('Jim')";
cmd.ExecuteNonQuery();
cmd.CommandText = "INSERT INTO Friends(Name) VALUES ('Robert')";
cmd.ExecuteNonQuery();
cmd.CommandText = "INSERT INTO Friends(Name) VALUES ('Julian')";
cmd.ExecuteNonQuery();
cmd.CommandText = "INSERT INTO Friends(Name) VALUES ('Jane')";
cmd.ExecuteNonQuery();
}
tr.Commit();
}
con.Close();
}
}
}
출처: https://unsigned.tistory.com/entry/Sqlite-Insert-속도-문제시 [공부하자 공부공부]
[Tip] Unity2018 -> Unity2019로 갈 때 obsolate 관련 처리 (1) | 2020.10.06 |
---|---|
[펌] Automatically set Hindi language in Unity (0) | 2020.09.15 |
[펌] [Unity] Android keystore 경로 상대경로로 지정하기 (0) | 2020.06.09 |
[링크] 유니티 프로모션용 영상/동영상 촬영 (0) | 2020.04.03 |
[펌] Unity Editor Play 중 소스 수정 시, Recomplie 여부 옵션 (0) | 2020.02.14 |
[링크] https://explorermax.drivethelife.com/
Clover가 마음에 들었었는데,
중국산이고 최신 버전은 뭔가 뒤로 하고 있는 것 같아서 찝찝해서
대체 프로그램을 찾고 있었는데 ExplorerMax가 보여서 Trial 깔아봤습니다.
Clover에 있던 원했던 기능이 아래와 같이 3가지 였는데 ExplorerMax에 다 있네요.
1. 탭브라우저 방식 멀티탭
2. 즐겨찾기(Bookmark)
3. 프로그램을 껐다 켜도, 열었던 탭 저장 된 상태로 보존(없는 줄 알았는데 설정에 보니 있네요)
유료라서 어떨지 몰라서 우선 Trial로 사용해 보는 중인데 문제 없으면 유료구매 할까 생각중입니다.
[추가]
Giveway로 1년 무료 Key가 있어서 넣어보니 되네요.(언제 막힐지는 모르겠습니다)
1년 사용하고 후에 구매 생각을..
[추가2]
언제 등록해도 만료일이 2021년 8월 4일 인 것 같습니다.
Giveway 이벤트 시작일 기준 1년 무료인 것 같네요.
---------------------------------------------------------
BBF92-30413-AD377-E709A-A15F1
97383-5AF67-1255C-52748-66D85
---------------------------------------------------------
[1년 무료 라이센스 키 URL] https://winningpc.com/product/explorermax-pro-license-key-free/#giveaway-details
[에셋] Colorblind Effect(색맹/색약 테스트 에셋) (0) | 2020.10.07 |
---|---|
[펌] Sniper - 검열우회 | 광고차단 | 보안 앱 (0) | 2019.08.07 |
[링크][화면보호기] 플립형 시계 화면보호기(스크린 세이버, screen saver) 모음 (0) | 2019.08.06 |
Unity3d Document for VS2012/VS2013 (2) | 2014.11.10 |
3D Model Viewer (0) | 2013.01.18 |
[무료 다운로드] https://www.ganttproject.biz/download/free
[자바 런타임(AdoptOpenJDK)] https://adoptopenjdk.net/
※ Important: when installing AdoptOpenJDK Java Runtime, make sure to select option "JavaSoft (Oracle) registry keys".
프로젝트 일정 관리 프로그램 입니다.
요즘 구글 드라이버와 연동해서 실행되는 일정관리 앱들이 많이 있는데, 이 프로그램은 윈도우용 프로그램입니다.
물론 리눅스나, 맥용도 있습니다.
특징
이 프로그램 만의 특징이라면 우선 오프라인에서 실행되므로 빠릿빠릿합니다.
그리고 무료라는 점.
유명한 Smart Sheet나 Gantter의 경우 기능적으로 훌륭하지만, 유료이기 때문에 개인이 사용하기에는 부담스러운 부분이 있습니다.
무료로 간트차트로 프로젝트 일정 관리를 원하신다면, Gantt Project를 써보시기 바랍니다.
GanttProject
Free desktop project scheduling and management app with Gantt chart for Windows, Linux and macOS
www.ganttproject.biz
다운로드
https://www.ganttproject.biz/download
GanttProject
Free desktop project scheduling and management app with Gantt chart for Windows, Linux and macOS
www.ganttproject.biz
무료이긴 한데, 5$를 지불하고 사시면 좀 더 빨리 새로운 기능을 업데이트 할 수 있는 혜택이 있습니다.
다운로드시 옵션1은 유료, 옵션2는 무료 이니 참고하세요.
[출처] GanttProject - 무료 간트차트 프로그램|작성자 펭순이
[링크] Firebase App Distribution으로 iOS 앱 배포하기 (0) | 2024.06.18 |
---|---|
[링크] 트렐로 간트 차트 연동하는 4가지 방법 (0) | 2021.12.01 |
[링크] 애자일 Scrum(스크럼) 이해하기 (0) | 2020.06.29 |
[링크] 간트차트 프로그램 추천 : 다운 없이 바로 제작, 엑셀 저장 가능! (0) | 2019.06.27 |
[링크] 테크니컬 리더십: 시작하기 (0) | 2018.12.05 |
[링크][윈도우10] 모니터 화면 밖으로 사라진 창 화면 안으로 옮기는 방법 (2) | 2020.11.26 |
---|---|
[Tip] Png 이미지의 특정 색상을 Alpha로 변환 (0) | 2020.09.09 |
[펌] 티스토리 마크다운 코드블럭에 하이라이트 적용하기 (0) | 2020.07.07 |
[링크] GIF파일(움짤파일) 용량 줄이는 사이트추천!!! (0) | 2020.04.27 |
[펌] 이벤트 뷰어 시스템 오류 해결 문의입니다. (DistributedCOM, 이벤트ID 10016) (0) | 2020.03.13 |
티스토리는 현재 마크다운을 공식지원 하고 있지만 코드 하이라이팅은 기본으로 적용되지 않습니다. 코드 하이라이트가 적용 된 스킨을 사용하고 계시는 분들도 있고 개인의 취향에 따라 자율적으로 스타일을 적용할 수 있게 하려는 의도라고 합니다. 따라서 하이라이트가 적용되지 않은 스킨을 사용하신다면 별도로 설정을 해주셔야 합니다.
- 블로그 관리페이지 > 플러그인 메뉴로 이동합니다.
- Syntax Highlight 를 찾아서 선택합니다
- 하단 테마에서 원하시는 테마를 선택합니다. (저는 Github을 선택했습니다)
- 그 다음 적용을 누르시면 끝입니다.
간단한 방법으로 cdn을 이용해서 html 태그에 삽입 하겠습니다.
highlight.js demo 에 접속해서 원하는 스타일을 찾습니다. 저는 Github 스타일을 선택했습니다.
스타일명을 포함한 아래의 코드를 복사합니다.
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.9/styles/github.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.9/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
블로그관리 > 스킨편집 > Html 에 진입합니다.
위에서 복사한 코드를 아래와 같이 붙여넣고 오른쪽 위의 적용을 누르면 끝입니다.
Github 테마가 적용된 코드블럭
class Person { private int age; private String name; public Person(int age, String name) { this.age = age; this.name = name; } public String getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
출처: https://simsi6.tistory.com/43 [곰돌푸우❤️]
[Tip] Png 이미지의 특정 색상을 Alpha로 변환 (0) | 2020.09.09 |
---|---|
[링크] 중국에서 해당 사이트 접속 가능한지 체크 (0) | 2020.07.08 |
[링크] GIF파일(움짤파일) 용량 줄이는 사이트추천!!! (0) | 2020.04.27 |
[펌] 이벤트 뷰어 시스템 오류 해결 문의입니다. (DistributedCOM, 이벤트ID 10016) (0) | 2020.03.13 |
[Win10] 컴퓨터를 켜놓고 장시간 놔뒀는데 뻗어있을 때.. (0) | 2020.02.28 |
[참조] https://mentum.tistory.com/150
참조 사이트에 포스팅 된 내용을 참고해서 나한테 맞게 만듬.
(Unity2018 / 저장공간(선택) 권한만 필요)
using System;
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
using UnityEngine.Assertions;
using UnityEngine.Android;
public class UICheckPermissionManagerSGT : MonoBehaviour
{
public GameObject m_panelCheckPermission = null;
public GameObject m_panelDeniedConfirm = null;
private bool m_bOnCheckPermission = false;
void Start()
{
Debug.Log("[Scene] CheckPermission");
InitCheckPermission();
CheckCountryCode_KR();
}
void InitCheckPermission()
{
m_bOnCheckPermission = false;
ActivateCheckPermission(false);
ActivateDeniedConfirm(false);
}
void CheckCountryCode_KR()
{
// GetIP가 한국인지 체크하는 외부 함수
SGT.Global.CheckCountryCode_KR(ConfirmCountryCode_KR);
}
void ConfirmCountryCode_KR(bool _bIsCountryCode_KR)
{
if (true == _bIsCountryCode_KR)
{
// 한국 : Permission 확인
DoCheckPermission();
//CallPermission();
}
else
{
// No 한국 : Next Scene으로 이동
GoToNextScene();
}
}
void DoCheckPermission()
{
// 저장공간(Write) 권한 체크(선택 권한)
if (Permission.HasUserAuthorizedPermission(Permission.ExternalStorageWrite) == false)
{
// 지정된 권한이 없으면 CheckPermission UI 활성화
ActivateCheckPermission(true);
}
else
{
GoToNextScene();
}
}
IEnumerator CheckPermissionCoroutine()
{
m_bOnCheckPermission = true;
yield return new WaitForEndOfFrame();
// 저장공간(Write) 권한 체크(선택 권한)
if (Permission.HasUserAuthorizedPermission(Permission.ExternalStorageWrite) == false)
{
// 권한 요청
Permission.RequestUserPermission(Permission.ExternalStorageWrite);
yield return new WaitForSeconds(0.2f); // 0.2초의 딜레이 후 focus를 체크하자.
yield return new WaitUntil(() => Application.isFocused == true);
if (Permission.HasUserAuthorizedPermission(Permission.ExternalStorageWrite) == false)
{
// 권한 거절하면 안내 팝업
OnEventDenied();
yield break;
}
}
// 권한이 있으면 다음 Scene으로 이동
GoToNextScene();
m_bOnCheckPermission = false;
}
// 해당 앱의 설정창을 호출한다.(권한 설정할 수 있도록 유도)
// https://forum.unity.com/threads/redirect-to-app-settings.461140/
private void OpenAppSetting()
{
try
{
#if UNITY_ANDROID
using (var unityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
using (AndroidJavaObject currentActivityObject = unityClass.GetStatic<AndroidJavaObject>("currentActivity"))
{
string packageName = currentActivityObject.Call<string>("getPackageName");
using (var uriClass = new AndroidJavaClass("android.net.Uri"))
using (AndroidJavaObject uriObject = uriClass.CallStatic<AndroidJavaObject>("fromParts", "package", packageName, null))
using (var intentObject = new AndroidJavaObject("android.content.Intent", "android.settings.APPLICATION_DETAILS_SETTINGS", uriObject))
{
intentObject.Call<AndroidJavaObject>("addCategory", "android.intent.category.DEFAULT");
intentObject.Call<AndroidJavaObject>("setFlags", 0x10000000);
currentActivityObject.Call("startActivity", intentObject);
}
}
#endif
}
catch (Exception ex)
{
Debug.LogException(ex);
}
}
void ActivateDeniedConfirm(bool _bActive)
{
GgUtil.Activate(m_panelDeniedConfirm, _bActive);
}
void ActivateCheckPermission(bool _bActive)
{
GgUtil.Activate(m_panelCheckPermission, _bActive);
}
void GoToNextScene()
{
// 패치씬으로 이동
SGT.Scene.RunCheckPermissionToPatch();
}
//////////////////////////////////////////////////////////////////////////
// Event
//////////////////////////////////////////////////////////////////////////
void OnEventCheckPermission()
{
if (true == m_bOnCheckPermission)
return;
StopCoroutine("CheckPermissionCoroutine");
StartCoroutine("CheckPermissionCoroutine");
}
void OnEventDenied()
{
ActivateDeniedConfirm(true);
}
void OnEventDeniedConfirm()
{
// 저장공간은 선택권한이라 권한요청 거절해도 게임 진행
GoToNextScene();
}
//////////////////////////////////////////////////////////////////////////
// UI Event
//////////////////////////////////////////////////////////////////////////
// 권한 동의 버튼
public void OnUIEventCheckPermission()
{
if (SGT.Global.bPreventDoubleClick)
return;
SGT.Global.PreventDoubleClick();
OnEventCheckPermission();
}
// 거절 확인
public void OnUIEventDeniedConfirm()
{
OnEventDeniedConfirm();
}
// 권한 설정 열기
public void OnUIEventOpenAppSetting()
{
OpenAppSetting();
}
}
[펌] minSdkVersion와 targetSdkVersion 정확하게 사용하기 (0) | 2020.11.11 |
---|---|
[펌] Unity Application.persistentDataPath의 경로는 Android의 버전과 Write Access에 따라 달라짐 (0) | 2020.10.07 |
[Error] Stopped polling job due to exception: System.NullReferenceException: Object reference not set to an instance of an object (0) | 2020.07.01 |
[버그] APP NOT CORRECTLY CONFIGURED TO USE GOOGLE PLAY GAME SERVICES (0) | 2020.02.17 |
[펌] Android App Bundle(AAB) 빌드하기 (0) | 2020.02.11 |
일부 인터넷에서 "개나 소나"를 찾아보면 아래의 해설이 있습니다.
(대체로 비슷함)
소라는동물은 우릭민족에게 있어서는 귀한동물의 상징이었습니다 농사를 짓고 고기를 얻고 그래서 재산목록에도 들어가는 귀한 가축이었지요 그러나 개는 천하게 여기든동물로 흔히 천한것을 상징하지요 그래서 욕속에 개가 들어가는경우가 먾습니다 즉 소같이 귀중한짐승이가는곳에 개같이 하찮한짐승도 끼어든다는듯으로 주제도 모르고 함부로 끼어들어 어울리려할대 개나소나끼어든다 혹은 개나소나 다가는곳이라든지 개나소다하는것등으로 표현을 합니다
즉 귀한사람이나 천한사람누구나 라는뜻입니다
그런데 언젠가 국어 공부를 하면서 "개나 소나"라는 뜻은 동물의 개나 소와는 아무런 상관이 없는 말이었던 것으로
기억합니다. 그 뜻이 와전된 것이라고 알고 있습니다. 정확한 뜻을 풀이해 놓은 곳을 찾을 수가 없네요 !
원뜻과 현재 위와 같은 뜻으로 사용하는 것이 바른 것인 지, 아닌 지에 대하여 알고 싶습니다.
비밀번호 삭제
[출처] https://www.korean.go.kr/front/onlineQna/onlineQnaView.do?mn_id=&qna_seq=19619&pageIndex=12532
[링크] 에요 예요 이에요 이예요 완벽하게 정리해보자!! (0) | 2023.04.14 |
---|---|
[한글] 짓궃다vs 짖궃다 (0) | 2021.08.03 |
[펌] 한국인이 가장 많이 틀리는 맞춤법 (0) | 2018.11.13 |
[펌] 자주 틀리는 우리말 맞춤법 (0) | 2018.06.04 |
[펌] '구별하다'와 '구분하다'의 차이 (0) | 2018.01.30 |
[링크] 엑셀 강좌 사이트 (0) | 2018.10.30 |
---|---|
[링크] 유효성 검사를 한 번 더 - 이중 유효성 검사, INDIRIECT 함수 (0) | 2016.10.31 |
[링크] 입력할 데이터를 미리 정하기 - 유효성 검사 (0) | 2014.06.14 |
엑셀 틀고정, 첫행고정, 첫열고정 사용하기 (0) | 2014.03.14 |