**직렬화(Serializable)
위와 같이 script를 짜면 아래의 화면과 같이 지저분하게 유니티에 나온다.
보는 것과 같이 직렬화(Serializable)를 시키면 아래와 같이 깔끔한 모습을 인스펙터에서 볼 수 있다.
===========================================================================================================
**중력(Gravity)
리지드바디 사용시 중력을 사용함에 체크 하면 간혹가다 배경 아래로 가라앉는 경우가 생긴다.
이러한 이유는 콜라이더가 없어서이다. collider를 추가하자. 그러면 배경 아래로 가라앉지 않는다.
===========================================================================================================
**오일러(Euler) 와 쿼터니언(Quaternion)
오일러는 축을 이용한 자유로운 회전이 장점. x,y,z축을 각각 원하는 값을 입력하여 회전 시킬 수 있음.
GetComponent<Rigidbody>().rotation = Quaternion.Euler(0.0f, 0.0f,10f) 라고 만약 함수를 사용한다고 하자.
그러면 x,y축은 그대로 두고 z축만을 회전시킨다.
이런식으로 오브젝트에 자신이 원하는 회전을 만들 수 있다는게 Euler의 장점.
대신에 짐벌락이라고 하는 단점이 생긴다. 그냥 그렇구나 라고 알아두자.
쿼터니언은 오일러에 비해 연산속도가 빠르다. 어쨋든 유니티에서는 Quaternion.Euler 이런식으로 사용한다.
복잡하게 생각하지 말고 쿼터니언도 오일러와 같이 회전을 위한 함수정도로 기억하자.
중요한 것은 유니티에 나온 함수를 얼마나 이해하고 적재적소에 사용하냐 이다.
===========================================================================================================
물질(material)에 텍스쳐를 입히면 그 다음에는 이 텍스쳐가 잘 보이도록 하는게 중요하다.
여기서 잘 보인다는 뜻은 게임의 미사일이라면 미사일답게, 배경이면 배경답게 보이는 것을 의미한다.
이때 사용할 방법이 shader이다. shader에는 여러 종류가 있는데 그 중 한가지를 소개하려 한다.
shader -> Particles-> Additive 이녀석을 사용하면 검은색 부분은 0으로 된다.
한가지 더 팁을 말하자면 Shader ->mobile 이 있는데 여기 있는 녀석들을 사용하면 게임 리소스 효율면에서 다른 것 보다 효율적이다.
왼쪽이 standard고 오른쪽이 Additive
===========================================================================================================
OnTriggerEnter 를 쓸 때 조심해야한다. 이건 접촉되는 모든 collider에 대해 예외없이 적용된다.
만약 OnTriggerEnter 안에 내용이 Destroy일 경우 의도하지 않게 배경이나 주위 사물이 접촉되어 있어 파괴될 수 있다.
따라서 접촉되더라도 파괴되지 않아야 하는 녀석들은 tag를 걸고, script에 if문을 써서 파괴되지 않도록 해주는 것이 좋다.
void OnTriggerEnter (Collider other) {
if (other.tag == "파괴하면되는녀석tag") return;
===========================================================================================================
만약에 position이나 오브젝트에 랜덤 범위의 값이 들어가야하는 경우...
static function Range (min : float, max : float) : float 를 사용하면 된다.
===========================================================================================================
이런식으로 인스펙터에 범위를 자유롭게 정할 수 있는 옵션을 추가 하고 싶다면 스크립트에 public float test =0.5f; 쓰고 이 위에
[Range(0,1)] <-이걸 쓰면 된다.
===========================================================================================================
유니티 배경 화면 변경하기!
Window -> Lighting 들어가면 Environment Lighting 에 Skybox 가 있음.
===========================================================================================================
Description -
Returns a random integer number between min [inclusive] and max [exclusive] (Read Only).
static function Range (min : float, max : float) : float
Description -
Returns a random float number between and min [inclusive] and max [inclusive] (Read Only).