본문 바로가기

프로그램 공부

(64)
Audio 관련 스크립트 - AudioSource.PlayClipAtPoint(AudioClip clip, Vector3 position) : 월드의 특정 위치에서 오디오소스를 만들어 해당 AudioClip을 재생 후 자동으로 삭제. private AudioClip clip; private void Test() { AudioSource.PlayClipAtPoint(clip, new Vector3(0, 1, 2)); } - AudioSource 함수 : PlayDelayed(float delay) : 해당 오디오소스가 delay 시간이후 재생되도록 만들어주는 함수 private AudioSource audio; private void Test() { //audio가 1초 뒤 재생 audio.PlayDelayed(1.0f); }
이벤트 콜백 함수 UnityEditor 네임스페이스를 사용하기 위해서, UnityEditor 선언을 한 스크립트는 Project뷰 → Editor 폴더 안에 있어야 사용이 가능하다. - [PostProcessBuild(N)] : 빌드 후 호출될 콜백. ex) 유니티 내에 있는 특정파일(ex. 특정 정보를 외부에서 수정할 수 있도록 빼놓은 데이터 텍스트)을 Build후에도 사라지지 않도록 만드는 코드 using UnityEditor; //함수의 인자인 BuildTarget을 위해 using UnityEditor.Callbacks; //PostProcessBuild를 위해 using System.IO; //Directory를 위해 public class TestProcess { //실행순서를 의미 //0이 내부에 쓰이는 or..
EditorSceneManager : 에디터에 있는 씬매니저 클래스 using UnityEditor.SceneManagement; - EditorSceneManager.LoadScene() : 씬을 로드하는 함수 Build Settings에서 불러오려는 해당 씬을 추가하지 않으면 씬 불러오기가 불가능하다. EditorSceneManager.LoadScene("Test_Scene"); ""안에 불러오려는 씬의 이름을 정확히 입력하면 해당씬으로 이동한다. - EditorSceneManager.GetActiveScene() : 현재 씬에 대한 정보를 가져올 수 있는 함수 ▶ ().name : 현재 씬의 이름 ▶ ().path : 현재 씬이 저장되어있는 파일경로 ▶ ().rootCount : 현재 씬에 있는 부모오브젝트의 개수 (Hierarchy에서 하위 오브젝트가 아닌 부모오..
EditorApplication : Unity 에디터에 대한 클래스 using UnityEditor; - EditorApplication.playmodeStateChanged : 에디터에서 플레이를 감지하고 이벤트 함수를 호출한다. 람다식으로 함수를 넣고빼며 사용한다. (+= / -=) (playModeStateChanged랑 헷갈리지 않기) using UnityEditor; using UnityEngine; using UnityEditor; public class TestScript : MonoBehaviour { private void Awake() { EditorApplication.playmodeStateChanged += testA; EditorApplication.playmodeStateChanged += testB; } static void testA() {..
[InitializeOnLoad] : 유니티 시작시 스크립트 실행 : 예를 들어 유니티 컴파일이 시작될 경우 해당 스크립트는 바로 실행하게 된다. using UnityEngine; using UnityEditor; [InitializeOnLoad] public class Test_InitializeOnLoad : MonoBehaviour { static Test_InitializeOnLoad() { Debug.Log("이 안에 내용 작성"); //그러면 유니티 컴파일을 시작할 경우 위의 Debug.Log가 바로 실행된다. } } [InitializeOnLoad]를 사용하기 위해서는 using UnityEditor;를 써줘야 한다. 컴파일이 시작된 후 한번만 실행이 된다. 시작 전 씬을 저장할때 사용해도 좋다.
특정시간을 주고 호출되는 함수 만들기 https://hyunity3d.tistory.com/367 유니티 특정 시간마다 호출되는 함수 만들기. 특정 시간마다 호출되는 함수를 만들고 싶을수 있습니다. using UnityEngine; using System.Collections; public class CsGameManager : MonoBehaviour { private float TimeLeft = 2.0f; private float nextTime.. hyunity3d.tistory.com
StreamWriter, StreamReader (텍스트 파일을 쓰고 읽는 클래스) 1. StreamWriter : 텍스트 파일을 쓰는 클래스 using System.IO; StreamWriter file = new StreamWriter(new FileStream("파일 이름", 파일 모드)); //텍스트 파일 저장시 개행을 하려면 \n앞에 \r(캐리지 리턴)도 넣어줘야 한다. file.Write("내용쓰기\r\n"); - 일반적인 상대 경로 StreamWriter file = new StreamWriter("파일이름.txt"); - 절대경로 StreamWriter file = new StreamWriter(@"C:\Users\파일이름.txt"); - 텍스트 파일 쓰기 file.Write("내용쓰기"); - 2. StreamReader : 텍스트 파일을 읽는 클래스 using Syst..
StringBuilder (계속해서 변경해야하는 string 변수일 경우 사용) C#에서 string은 Immutable Type(한번 값이 설정되면 다시 변경할 수 없는 타입)이다. 그렇기에 'string a = "AA"; '라고 설정한 후 'a = "Aa"; '을 실행하면 대입이 아닌 새로운 string 객체를 생성하여 "Aa"라는 는 데이터로 초기화 한 후에 변수명 a에 할당한다. 즉 변수 a는 전혀 다른 메모리를 갖는 객체를 가르키는 것이다. 반면에 System.Text.StringBuilder 클래스는 Mutable Type(값을 계속 변경할 수 있는 타입)이기에 문자열 갱신을 많이하는 프로그램에 자주 사용된다. StringBuilder는 클래스가 별도 메모리를 생성, 소멸하지 않고 일정한 버퍼를 갖고 문자열 갱신을 효율적으로 처리하기 때문이다. 함수 기능 Append() ..