순수 C#으로 Unity 게임 만들기
편집기에서 할 수 있는 모든 작업을 코드로 표현할 수 있습니다. 구성 요소 설정, 앵커 변환, 애니메이션, 사운드 등은 모두 코드에서 가능하며 올바른 네임스페이스만 사용하면 됩니다. Welcome to the Unity Scripting Reference에 많은 정보가 있습니다. Unity 2018에는 Visual Studio Community가 있어 코드 작성이 매우 편합니다.
자바스크립트와 C
Unity가 Kotlin 또는 Swift를 지원한다면 매우 기쁠 것입니다. 하지만 현재로서는 Javascript and C#만 지원됩니다. 저도 순수한 Javascript의 열렬한 팬이지만 형식 안전성 때문에 C#을 선택하고 대학에서 XNA 및 ASP.NET 프로젝트를 위해 공부한 언어이기 때문에 C#을 선택했습니다.
들여 쓰기
저처럼 2칸 들여쓰기가 마음에 드시면 Visual Studio의 기본 설정으로 이동하여 편집기 설정을 변경할 수 있습니다.
게임오브젝트와 캔버스
Unity 에디터에서 임의의 UI 요소를 화면으로 드래그하면 Canvas 및 EventSystem도 생성되는 것을 볼 수 있습니다. 이것들은 미리 정의된 Component 묶음이 있는 GameObject입니다.
이것을 코드로 작성하려면 화면에 표시되는 내용을 따르기만 하면 됩니다. 처음에는 오브젝트와 속성을 배우기 위해 에디터를 사용해야 하지만 나중에 Unity와 Unity의 많은 GameObject 에 익숙해지면 코딩만 하면 됩니다. 참아주세요. 처음에는 코드가 번거로울 수 있지만 분명히 많은 것을 배울 수 있습니다.
저는 보통 재사용 가능한 코드를 파일로 구성합니다. C# 파일을 만들고 이름을 Sugar 로 지정하겠습니다. EventSystem 및 UI의 경우 UnityEngine.EventSystems가 필요하고 UnityEngine.UI 네임스페이스를 사용합니다.
EventSystem을 만드는 방법은 다음과 같습니다.
public class Sugar {
public GameObject makeEventSystem() {
GameObject systemEventObject = new GameObject("EventSystem");
EventSystem system = systemEventObject.AddComponent<EventSystem>();
system.sendNavigationEvents = true;
StandaloneInputModule module = systemEventObject.AddComponent<StandaloneInputModule>();
module.horizontalAxis = "Horizontal";
module.verticalAxis = "Vertical";
module.submitButton = "Submit";
module.cancelButton = "Cancel";
module.inputActionsPerSecond = 10;
module.repeatDelay = 0.5f;
module.forceModuleActive = false;
return systemEventObject;
}
}
그리고 캔버스
public GameObject makeCanvas() {
GameObject canvasObject= new GameObject("Canvas");
Canvas canvas = canvasObject.AddComponent<Canvas>();
canvas.renderMode = RenderMode.WorldSpace;
CanvasScaler scaler = canvasObject.AddComponent<CanvasScaler>();
scaler.scaleFactor = 10.0f;
scaler.dynamicPixelsPerUnit = 10.0f;
GraphicRaycaster graphic = canvasObject.AddComponent<GraphicRaycaster>();
canvasObject.GetComponent<RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 3.0f);
canvasObject.GetComponent<RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 3.0f);
return canvasObject;
}
일반적인 UI 요소를 만드는 방법
public GameObject makeBackground(GameObject canvasObject) {
GameObject backgroundObject = new GameObject("Background");
backgroundObject.AddComponent<CanvasRenderer>();
Image image = backgroundObject.AddComponent<Image>();
image.color = Color.green;
backgroundObject.transform.SetParent(canvasObject.transform, false);
return backgroundObject;
}
public GameObject makeLogo(GameObject parentObject) {
GameObject logoObject = new GameObject("Logo");
logoObject.AddComponent<CanvasRenderer>();
Image image = logoObject.AddComponent<Image>();
image.color = Color.red;
logoObject.transform.SetParent(parentObject.transform, false);
return logoObject;
}
public GameObject makeButton(String title, GameObject parentObject) {
GameObject buttonObject = new GameObject(title + " Button");
buttonObject.AddComponent<CanvasRenderer>();
GameObject textObject = new GameObject("Text");
textObject.AddComponent<CanvasRenderer>();
Text text = textObject.AddComponent<Text>();
text.text = title;
textObject.transform.SetParent(buttonObject.transform, false);
buttonObject.transform.SetParent(parentObject.transform, false);
return buttonObject;
}
이제 Scene에 빈 GameObject를 만들고 이 GameObject에 Script 구성 요소를 추가합니다. 문제 없이 Sugar.cs에서 코드를 참조할 수 있습니다.
여기에서 갈 곳
❤️ 내 앱 지원 ❤️
❤️❤️😇😍🤘❤️❤️
Reference
이 문제에 관하여(순수 C#으로 Unity 게임 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/onmyway133/making-unity-games-in-pure-c-7jb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)