DOTS 개념과 샘플 강좌 영상을 보기에 앞서, 강좌에 들어가는 여러 생소한 개념을 적어놓고 시작합니다. 해당 내용들은 강좌를 들으면서 그때그때 나온 내용들을 간단히 적어둔 것입니다.
명시적으로 생성자를 호출한 다음 할당문 줄을 추가하지 않고도 생성 시 개체의 모든 액세스 가능한 필드나 속성에 값을 할당할 수 있습니다. 개체 이니셜라이저 구문을 사용하면 생성자의 인수를 지정하거나 인수(및 괄호 구문)를 생략할 수 있습니다.
public class Cat
{
// Auto-implemented properties.
public int Age { get; set; }
public string? Name { get; set; }
public Cat()
{
}
public Cat(string name)
{
this.Name = name;
}
}
Cat cat = new Cat { Age = 10, Name = "Fluffy" };
Cat sameCat = new Cat("Fluffy"){ Age = 10 };
아래 코드에서 foreach의 지역 변수로 활용하는 변수 공간에는 튜플도 활용할 수 있음
foreach (var (transform, speed) in
SystemAPI.Query<RefRW<LocalTransform>, RefRO<RotationSpeed>>())
{
transform.ValueRW = transform.ValueRO.RotateY(
speed.ValueRO.RadiansPerSecond * deltaTime);
}
읽기만 가능하다.
클래스 내용이 길어질 경우 여러 파일에 나눠서 구현할 수 있게 해준다.
중첩 클래스, 내부 클래스 등으로 불리며 사용 이유는 다음과 같다.
코드에 대한 부가 정보를 기록하고 읽을 수 있는 기능입니다. 애트리뷰트를 이용해서 클래스나 구조체, 메소드, 프로퍼티 등에 데이터를 기록해두면 C# 컴파일러나 C#으로 작성된 프로그램이 이 정보를 읽고 사용할 수 있습니다.
This attribute can be used to tag jobs as being Burst Compiled, and optionally set some compilation parameters.
메서드가 호출자에게 참조로 반환하는 값입니다. 즉, 호출자는 메서드에서 반환된 값을 수정할 수 있으며 해당 변경 내용은 호출된 메서드의 개체 상태에 반영됩니다.
void Execute(ref LocalTransform transform, in RotationSpeed speed)
{
transform = transform.RotateY(speed.RadiansPerSecond * deltaTime);
}
지역 변수를 선언하고 변수의 형식 앞에 키워드(keyword) 추가 ref
하면 참조 변수 또는 로컬을 ref
선언합니다.
참조 변수는 참조 변수라고 하는 다른 변수를 참조하는 변수입니다. 즉, 참조 변수는 참조에 대한 별칭 입니다. 참조 변수에 값을 할당하면 해당 값이 참조에 할당됩니다. 참조 변수의 값을 읽으면 참조 값이 반환됩니다. 다음 예제에서는 해당 동작을 보여줍니다.
ref int alias = ref variable;
인수가 참조로 전달되지만 인수가 수정되지 않습니다.
void Execute(ref LocalTransform transform, in RotationSpeed speed)
{
transform = transform.RotateY(speed.RadiansPerSecond * deltaTime);
}
참조를 통해 인수를 전달할 수 있습니다. 인수로 전달되는 변수는 메서드 호출에서 전달되기 전에 초기화할 필요가 없지만 호출된 메서드는 메서드가 반환되기 전에 값을 할당해야 합니다.
많은 도움이 되었습니다, 감사합니다.