블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2857)
Unity3D (897)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (191)
협업 (64)
3DS Max (3)
Game (12)
Utility (142)
Etc (99)
Link (34)
Portfolio (19)
Subject (90)
iOS,OSX (53)
Android (16)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (19)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday


[링크] https://github.com/kimsama/Unity5-AssetBundleSetting

반응형

'Unity3D > AssetBundle' 카테고리의 다른 글

[펌] 에셋번들 생성하기 & 다운로드  (0) 2017.04.12
[링크] 에셋번들 로딩 방식 4가지  (0) 2017.03.03
WWW.LoadFromCacheOrDownload  (0) 2015.04.23
AssetBundle 가이드  (0) 2015.01.26
AssetBundle 버전체크 방식..  (0) 2014.04.21
Posted by blueasa
, |

- Unity 5.3 기준 처음보는 Custom Coroutine 이 추가돼 있길래 남겨 놓음

  = WaitWhile()

  = WaitUntil()



Among all the shiny new features, there is a tiny one line in the Unity 5.3 release notes for a feature that I found useful and I think you will too. Custom coroutines, namely the new CustomYieldInstruction class, mean that you can now add your own coroutine yield operations in a very simple way. So let’s take a look at a real world example.

A real world example – A bugfix

I was recently investigating a bug in the UI Dropdown component, a Unity 5.2 feature. When Time.timescale was set to 0, the Dropdown component would only work once, then it would not reappear until timescale was set back to a non-zero value.

After a bit of debugging, we found out that the problem is in the Show function.

2

m_Dropdown is not null and is preventing the Dropdown from being shown.

Once shown, the m_Dropdown component is minimised and then destroyed. Well, it should be destroyed, but when the timescale is 0, this is not happening.

Take a look at the destroy function and see if you can spot the problem.

1

The title of this article may have given it away, but WaitForSeconds is the answer. WaitForSeconds uses scaled time. This means that if you tell WaitForSeconds to wait for 1 second and the timescale is 0.5, then you actually wait for 2 seconds (1 / 0.5 = 2). So using WaitForSeconds with a timescale of 0 means that you wait indefinitely (until the timescale is not 0). The Dropdown was never being destroyed after its first use, because we would get held up by the WaitForSeconds yield instruction.

The solution

We need to wait using unscaled time; the most elegant approach here is to add a new yield operation, a WaitForSecondsRealtime class. Clearly, if our own developers do not realise WaitForSeconds uses scaled time, then we need to address this. WaitForSecondsRealtime  should help reinforce this message. We also need to update the docs for WaitForSeconds (we never mention scaled time!).

This is how I discovered the CustomYieldInstruction, recently added for creating new yield operations.

Adding a new yield operation is very simple, here is the solution to our problem.

3

Any custom yield operation needs to override the keepWaiting property and once we want the yield operation to continue, we just pass back false.

Here is how our fix now looks:

4

In our example, we grab the real time and just test against it each check. It doesn’t get much simpler than that – oh wait, it does, because we now also have the WaitUntil and WaitWhile yield instructions. With these, we can provide a delegate to be called for our yield instruction test.

Here is an alternative way to solve our problem, assuming we wanted a 5 second delay.

5

So, a simple feature, but with a lot of potential. I guess the lesson learned here is: Remember to read the release notes, you never know what useful features you might find! If you like the custom coroutines, you should take a look at UnityEvents, another favourite feature of mine that you may have missed.




[출처] http://blogs.unity3d.com/kr/2015/12/01/custom-coroutines/


[참조] http://tsubakit1.hateblo.jp/entry/2015/12/09/000000

반응형
Posted by blueasa
, |

유니티 재팬의 keijiro 님이 공개한 텍스쳐 압축 플러그인입니다. 
내용으로 보아서 픽셀당 12bits정도의 메모리를 확보할수 있다고 합니다.

사용자 삽입 이미지

압축을 원하는 이미지 파일 이름 확장자 이전에 CP를 붙이면 ChromaPackProcessor에서 자동적으로 아래와 같이 Alpha8 이미지로 바꾸어주는 것을 볼수있습니다.

사용자 삽입 이미지

사용자 삽입 이미지

실제 바이너리를 프로파일링해본건 아니지만 샘플 이미지 기준 
원본 텍스쳐 : 256 256 ARGB 32 bit = 256.0KB
압축된 텍스쳐 : 384 256 Alpha 8 = 96.0KB

그리고 크게 눈에 띄지는 않지만 아래의 이미지를 보시면 머리카락 부분에 계단지는 현상이 나타나기도 합니다. (상 : 오리지날 텍스쳐 하 : ChromaPack이 적용된 텍스쳐)

사용자 삽입 이미지

사실 크게 눈에 띄지않고 용량 대비 좋은 퀄리티를 내는 건 사실이기 때문에 true color 텍스쳐를 적용하길 원하시는 분들은 한번쯤 적용해봐도 괜찮은 플러그인인것같습니다.

Git hub : https://github.com/keijiro/ChromaPack




[출처] http://lancekun.com/tc/196

반응형
Posted by blueasa
, |

손실 텍스처 압축 플러그인



* 이미지의 1픽셀당 12비트 메모리 절약

* 기존 유니티 16bit rgba 비해 절반 가량 절약

* ChromaPack 전용 쉐이더 사용


https://github.com/keijiro/ChromaPack


결론

용량 대비 품질이 좋음

텍스쳐 크기 변화에 따른 UV 문제는 없음

전용쉐이더를 써야하는 불편함

품질 손실을 감안 한다면 ETC2 4bits / ETC2 8bits 선택은 여전히 유효

품질 때문에 RGBA16bit/RGB 24bit 를 사용해야한다면 Chromapack 유효

(간혹, 알파 빗금이 1픽셀 보이는 문제가 있음. 쉐이더에서 좌표 수정해서 사용하심)



[출처]

http://3dmesh.tistory.com/entry/%EC%9C%A0%EB%8B%88%ED%8B%B0-ChromaPack-%ED%85%8D%EC%8A%A4%EC%B2%98-%EC%95%95%EC%B6%95

반응형
Posted by blueasa
, |



디더링 방식의 변화로 16비트 이미지 변화 비교


 * 스크립트를 적용하여 디더링 방식을 바꾸는 형태

 * 적용하기 쉬움

 * 모든 이미지가 위처럼 좋아지는 것은 아님 (점박이 노이즈 압박;;)

 * 그라데이션 표현을 살리고 싶을 때 좋을 듯

 * 귀찮더라도 Chromapack 사용한다면 패스~ (용량과 품질이 chromapack 압도)


https://github.com/keijiro/unity-dither4444



[출처]

http://3dmesh.tistory.com/entry/%EA%B0%9C%EC%84%A0%EB%90%9C-%EB%94%94%EB%8D%94%EB%A7%81-%EB%B0%A9%EC%8B%9D-%EC%86%8C%EA%B0%9C-16%EB%B9%84%ED%8A%B8-%ED%85%8D%EC%8A%A4%EC%B3%90-dither4444

반응형
Posted by blueasa
, |

Unity Job Process

Unity3D/Tips / 2016. 6. 27. 23:38

Window > Lighting > Lightmaps > Uncheck Auto.



[출처] http://answers.unity3d.com/questions/945639/a-unity-job-process-is-taking-up-95-of-my-physical.html

반응형
Posted by blueasa
, |

[Link] RhythmTool

Unity3D/Link / 2016. 6. 21. 23:18


[Link] https://www.assetstore.unity3d.com/kr/#!/content/15679

반응형

'Unity3D > Link' 카테고리의 다른 글

[Asset] 2D Outline  (0) 2018.05.21
[Unity] Google Play Game Service 연동시키기  (0) 2016.07.26
[Link] Visualizer Studio  (0) 2016.06.21
[Link] Unity 3 Audio Spectrum Analysis  (0) 2016.06.21
[링크] Unity3D 일일 자동 빌드 하기  (0) 2016.06.14
Posted by blueasa
, |

[Link] Visualizer Studio

Unity3D/Link / 2016. 6. 21. 22:59


[Visualizer Studio]

https://www.assetstore.unity3d.com/kr/#!/content/1761


[Link]

http://forum.unity3d.com/threads/released-visualizer-studio-a-music-visualization-scripting-package.100777/




반응형

'Unity3D > Link' 카테고리의 다른 글

[Unity] Google Play Game Service 연동시키기  (0) 2016.07.26
[Link] RhythmTool  (0) 2016.06.21
[Link] Unity 3 Audio Spectrum Analysis  (0) 2016.06.21
[링크] Unity3D 일일 자동 빌드 하기  (0) 2016.06.14
Unity Cloud Data 소개  (0) 2015.01.20
Posted by blueasa
, |

[Link] http://forum.unity3d.com/threads/unity-3-audio-spectrum-analysis.58769/

반응형

'Unity3D > Link' 카테고리의 다른 글

[Link] RhythmTool  (0) 2016.06.21
[Link] Visualizer Studio  (0) 2016.06.21
[링크] Unity3D 일일 자동 빌드 하기  (0) 2016.06.14
Unity Cloud Data 소개  (0) 2015.01.20
unity3d grid  (0) 2014.12.19
Posted by blueasa
, |


[링크] http://bulkdisk.tistory.com/88

반응형

'Unity3D > Link' 카테고리의 다른 글

[Link] Visualizer Studio  (0) 2016.06.21
[Link] Unity 3 Audio Spectrum Analysis  (0) 2016.06.21
Unity Cloud Data 소개  (0) 2015.01.20
unity3d grid  (0) 2014.12.19
Tree Pack(FBX)  (0) 2014.09.03
Posted by blueasa
, |