Loading...
2017. 9. 24. 13:15

unity의 awake

script 함수 실행 순서는 awake, onenable, start다. 이건 알고있던 건데 작업을 하다가 자꾸 awake에 에러가 나서 에러를 찾다보니하이라키에서 활성화 되어 있는오브젝트에 비활성화로 달려있는 컴포넌트였다. 여기에 붙어있는 컴포넌트의 내용은 아래와 같다.public class TestAwake : MonoBehaviour { void Awake() { Debug.Log("Awake"); } void OnEnable() { Debug.Log("OnEnable"); } void Start () { Debug.Log("Start"); } void Update () { Debug.Log("Update"); }} 똑같은 상태에서 TestAwake 컴포넌트의 active만 꺼 두면 어떻게 될까?..

ExecuteInEditMode

작업할때 디자이너분들이 작업하기 편하게 "ExecuteInEditMode"를 자주 쓰는 편인데어느날 에디터 실행후 종료시에 이상한 에러가 뜬다.봤더니 에디터 실행 후 종료시에 ExecuteInEditMode 코드가 있는 스크립트의 start 함수가 호출된다.누가 호출하는걸까..콜백도 없고...그래서 디버그를 다 찍어서 editor을 실행하니 ExecuteInEditMode 코드가 있는 스크립트에서는 1. 에디터 실행 - script의 OnDestroy 실행, Start 실행2. 에디터 종료 - script의 OnDestroy 실행, Start 실행 위와 같은 루틴을 탄다. [ExecuteInEditMode]public class ExecuteTest : MonoBehaviour { // Use this ..

2017. 7. 21. 20:30

Inspector에서 AnimationCurve 버그

1. 빈 프로젝트를 하나 만든다.2. 스크립트를 하나 만든다.3. 스크립트에 아래와 같이 AnimationCurve를 아래이름으로 만든다.public class NewBehaviourScriptf : MonoBehaviour { public AnimationCurve rgbUR_ = AnimationCurve.Linear(0, 0, 1, 1);public AnimationCurve rgbVB_ = AnimationCurve.Linear(0, 0, 1, 1);}4. 인스펙터창 비교 위와 같이 두개의 속성값이 생기는데 위의 값을 변경하면 아래 값도 자동으로 바뀐다.위의 값을 위와 같이 대충 바꿔주면 이렇게 아래값도 위의 값과 같이 바뀌었다. 하지만 아래값을 실제로 눌러보면 아래와 같이 정상적으로 표현된다. ..

2017. 7. 10. 18:25

unity에서 shader를 짤때..

이전에 PC시절에는 HLSL을 사용했고 언렬3에서는 glsl을 사용했는데 유니티로 넘어와서는처음에는 surface shader를 사용하다가 뭔가 찜찜하고 애매하고, 새 문법도 자주 까먹고,내가 surface shader로 짜도 유니티가 vertex, fragment로 자동으로 변환해 주는데 이 과정도 없었으면 좋겠고 해서,그냥 cg로 짜다보니 그냥 맘편히 계속 cg로 짜게 되었다.다른 사람은 surface가 편하다고 하는데 나도 옛날 마인드인가 그냥 손에익은게 편한듯... 실제로 surface shader로 만들어진 shader 파일을 보면 인스펙터 창에 아래와 같이 generated code 버튼이 있다.이 버튼을 누르면 자동으로 vertex, fragment shader로 변환된 코드를 보여준다. s..

ARB_precision_hint_fastest

khronos group에 적혀있는 내용을 보면... + Precision Hints (ARB_precision_hint_fastest, ARB_precision_hint_nicest) Fragment program computations are carried out at an implementation-dependent precision. However, some implementations may be able to performfragment program computations at more than one precision, and may be ableto trade off computation precision for performance.프래그먼트 프로그램 계산은 정밀도에 의존 구현을 수행한..

2017. 6. 23. 16:55

The Magic Of Material Property Blocks

이 글은 번역글입니다. 원문을 참고하시길 강력권장합니다.원문 : http://thomasmountainborn.com/2016/05/25/materialpropertyblocks/ MaterialProperyBlocks과 관련 API인[PerRendererData]을 발견했는데 무척 유용하긴 한데 정보가 별로 없다.그래서 관련 API들이 어떤일을 하는지, 어떻게 쓰는게 가장 좋은지를 빠르게 정리하기로 했다.만약 아직 이들에 대해 잘 모른다면, 이들은 분명 유니티 스킬에 좋은 도구가 되어 줄것이다.자, 이제 어떻게 사용되는지 한번 살펴보자.한 오브젝트의 색상이 애니메이트 되야 한다고 가정해 보자.앞에서 이야기 했던건 무시하고, 2500개의 오브젝트가 색상이 애니메이트 되야 한다고 가정해 보자. 마음속에 가..

2017. 6. 21. 12:29

RenderQueue

유니티에서는 Queue를 설정해서 오브젝트를 그릴 순서를 조절할 수 있다.셰이더는 오브젝트가 속하는 render queue를 결정하며, 이 방법에 의해 어떠한반투명 셰이더들도 불투명 오브젝트들 이후에 그려지게 보장한다. 유니티 도큐에 보면 아래와 같이 되어있다. Background : 가장 먼저 그려짐Geometry : 불투명(Opaque) 물체AlphaTest : 알파테스트 물체GeometryLast : 불투명(Opaque)에서 가장 나중에 그려짐.Transparent : Geometry와 AlphaTest 이후에 그려짐. 순서는 뒤에서부터 앞으로.Overlay : 중첩되는 효과. 큐 사이에서 좀 더 특별하게 사용할 수도 있다. 내부적으로 각 큐들은 정수 인덱스로 표시된다.Background는 1000..

2017. 6. 20. 15:42

There are inconsistent line endings

There are inconsistent line endings in the 'Assets/Scripts/SomeThing.cs' script. Some are Mac OS X (UNIX) and some are Windows.This might lead to incorrect line numbers in stacktraces and compiler errors. Many text editors can fix this using Convert Line Endings menu commands. 유니티에서 가끔 위와같은 경고가 찍힌다.대략적인 내용은 아래와 같다. 스크립트의 줄끝이 명확하지 않습니다. 어떤건 Mac을 따르고 어떤건 Window를 따릅니다.이렇게 되면 나중에 컴파일러 오류시 스택 추적할 때 잘..