Unity 개발에서 C #과 UnityScript는 어떻게 다릅니 까? [닫은]


13

명백한 언어 차이 외에 Unity3D에서 게임을 개발할 때 UnityScript와 C #은 어떻게 다릅니 까?

  • 눈에 띄는 성능 차이가 있습니까?
  • UnityScript 코드는있는 그대로 패키지되어 있습니까? 그렇다면 게임의 개조 가능성에 도움이됩니까?
  • 한 언어로 개발 된 라이브러리를 다른 언어로 개발하면서 사용할 수 있습니까?
  • 두 언어를 동일한 Unity 프로젝트에서 혼합 할 수 있습니까? C #의 일부와 UnityScript의 일부를 코딩하고 있습니까?

쓰기 구성 요소가 현명하지 않습니다. 그러나 C #은 DLL 가져 오기와 같은 추가 항목을 허용합니다. 그 외에는 "선택"입니다. 그리고 완전히 주관적입니다. 잊지 말고 코드를 작성할 수있는 Boo도 있습니다.
Sidar

2
객관적인 답변이있는 유용한 질문-닫혀서 불공평 해 보입니다.
UpTheCreek

1
이 질문이 종결 된 두 가지 주요 이유가 있으며, 질문의 유용성 또는 답변의 객관성과 관련이 없습니다. 먼저, 게시물은 둘 이상의 관련이없는 질문을합니다. 둘째, 요청 된 질문 중 일부는 너무 토론 지향적이거나 두 가지로 광범위하게 작성되어 적절하게 작성되었습니다. 질문이 얼마나 "유용한 지"또는 인기가 있는지 또는 답변이 얼마나 좋은지는 질문이 사이트에 적합한 지 여부와 관계가 없습니다.

답변:


12

눈에 띄는 성능 차이가 있습니까?

아니요. 기술적으로 성능 차이매우 작습니다.아닙니다. 대부분의 경우 언어 선택의 근거가 될만큼 중요하지 않습니다.

한 언어로 개발 된 라이브러리를 다른 언어로 개발하면서 사용할 수 있습니까?

예. 라이브러리 개발자가 권장하는 폴더 구조를 유지하는 한 해당 라이브러리는 모든 언어에서 액세스 할 수 있습니다. 이것은 Unity 컴파일 순서 와 관련이 있습니다 . 자동 완성과 같은 IDE의 일부 기능은 선택한 라이브러리에서 작동하지 않을 수 있습니다. (편집 : 무료 플러그인 UnityVS for Visual Studio를 사용하여이 문제를 해결할 수 있습니다 .)

C #의 일부와 Javascript의 일부를 코딩하여 동일한 Unity 프로젝트에서 두 언어를 혼합 할 수 있습니까?

다시 그렇습니다. 모든 것이 올바른 순서로 컴파일되어야하므로 빨리 복잡해집니다. 기술적으로는 가능하지만 하나의 언어를 선택하고 사용하는 것이 좋습니다.

어떤 언어로 더 나은 게임 개발 리소스를 이용할 수 있습니까 (책, 웹 사이트, 포럼)?

말하기 어렵다. 포럼을 탐색하면서 Javascript에 약간 더 많은 자습서와 코드 예제가 있다고 말하고 싶습니다. 코드는 일반적으로 다른 언어로 이식하기가 매우 쉽고 라이브러리는 여러 언어로 사용할 수 있으므로 큰 문제는 아닙니다.


8

Unity 개발자가 시작하는 모든 첫 번째 질문은 C # 또는 JS입니다. 항상 C #으로 이동하십시오.

"지금 은 C #을 배우고 싶지 않으며 이미 약간의 JavaScript를 알고 있습니다."

그러나 오해의 소지가있는 것은 Unity JavaScript가 JavaScript가 아니라는 것입니다. .NET CLR을 통한 ECMA 구문의 겉 모습입니다. 익명의 인클로저 및 함수 참조와 같이 JavaScript가 사용하는 멋진 작업은 정상적으로 사용하는 방식을 수행하지 않습니다. 일반 .net 배열과 일치하지 않는 자체 배열이 있으며 C #을 사용하여 피할 수있는 많은 함정과 한계가 발생합니다. 유니티 JavaScript는 .NET이 덜 위협적으로 보이도록 설계된 캔디 코팅 구문입니다. 좋은 것보다 더 해를 끼칠 것입니다.


7

먼저 두 가지 주요 이유로 Unity에서 프로그래밍 할 때 C #을 JavaScript보다 권장합니다. 첫 번째 이유는 당신이 기각 한 강하고 약한 타이핑 차이에 있습니다. 필자는 개념 수준에서 약한 타이핑보다 강한 타이핑이 더 효과적이라고 생각하지만 솔직히 말해서 사람들이 가지고있는 큰 논쟁이므로 솔직히 구체적인 실제 문제에 초점을 맞출 것입니다 : iOS에 배포 (및 다른 플랫폼도 가능). 내가 아는 사람은 정적 타이핑이 필요합니다. 유니티에는 실제로 이런 이유로 JavaScript에서 정적 타이핑을 강제 할 수있는 지시문 "#pragma strict"가 있지만, 두 번째 이유가 있습니다.

둘째, Unity의 JavaScript는 브라우저의 JavaScript와 완전히 동일하지 않습니다. 이것은 Unity 외부의 지식 (예 : JavaScript에 대한 대부분의 리소스)을 Unity의 프로그래밍에 적용하려고 할 때 문제를 일으 킵니다. 이것이 많은 Unity 개발자들이이 언어를 UnityScript라고 부르는 이유입니다.


이제 구체적인 질문을 해결하십시오.

눈에 띄는 성능 차이가 있습니까?

아니, 아니 ( 일부 세부 사항 )

자바 스크립트 코드는있는 그대로 패키지되어 있습니까? 그렇다면, 이것이 게임의 수정 가능성에 도움이됩니까?

플랫폼에 따라 다르며 실제로는 수정 가능성에 도움이되지 않습니다.

한 언어로 개발 된 라이브러리를 다른 언어로 개발하면서 사용할 수 있습니까?

나는 그렇게 생각한다. (내가 사용하는 모든 라이브러리가 C #으로 프로그래밍 되었기 때문에 이것을 할 필요는 없었지만)

C #의 일부와 Javascript의 일부를 코딩하여 동일한 Unity 프로젝트에서 두 언어를 혼합 할 수 있습니까?

예 (일관성으로 인해 피하려고하지만)


dentedpixel.com/developer-diary/… 는 이것을 답변에 추가하고 싶을 수도 있습니다. 공감.
Gray

흥미로운 링크가 추가되었습니다
jhocking
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.