해결된 질문
작성
·
353
0
선생님께서 작성하신 GameObject.cs 코드에 이런 부분이 있었습니다.
public ObjectInfo Info { get; set; } = new ObjectInfo();
public PositionInfo PosInfo { get; private set; } = new PositionInfo();
public StatInfo Stat { get; private set; } = new StatInfo();
public GameObject()
{
// 링크를 이어준다
Info.PosInfo = PosInfo;
Info.StatInfo = Stat;
}
근데 위 생성자에서 저 '링크'를 이어줬는데 그 후로
Info.PosInfo = new PositionInfo();
라는 코드를 부주의로 실행시킨다면 링크가 깨지지 않나요?
그 후로는 PosInfo.PosX = 0;
같은 걸 실행해도 PosInfo와 Info.PoInfo는 별개이니 게임오브젝트에 적용이 안 될 것 같은데
이렇게 이해하고 있는데 이게 맞는지 궁금합니다.
그리고 아래처럼 고친다면 이 링크 깨짐 문제가 해결되는지 궁금합니다.
public ObjectInfo Info { get; set; } = new ObjectInfo()
{
// 이걸 안 하고 쓰면 크래시가 난다
PosInfo = new PositionInfo(),
StatInfo = new StatInfo()
};
public PositionInfo PosInfo
{
get { return Info.PosInfo; }
set { Info.PosInfo = value; }
}
public StatInfo Stat
{
get { return Info.StatInfo; }
set { Info.StatInfo = value; }
}