2014-02-08 2 views
0

잠수함의 AI를 프로그래밍하고 있는데, 물 위에있을 때 호송을 볼 수 있지만 수중 상태에서는 호송의 위치를 ​​예측합니다. 호송의 위치를 ​​잠수함 클래스의 Vector2로 복사하면 호송의 위치가 업데이트 될 때마다이 Vector2가 계속 변경됩니다. 그렇다면 호송의 위치를 ​​원본과 연결하지 않고 어떻게 호송의 위치를 ​​복사 할 수 있습니까?값을 복사하지만 변경시 영향을받지 않음

답변

2

은 당신이 봤어 :

Vector2 vec2 = new Vector2(vec1.X,vec1.Y); 

대신 아직

Vector2 vec2 = vec1; 

의?

편집 :
배열/목록을 실행하고 새 벡터를 새 목록에 추가 할 수 있습니다.

for(int i=0;i<originalList.Count;i++){ 
    newList.Add(new Vector2(originalList[i].X,originalList[i].Y)); 
} 

Edit2가 :
당신은 사용자 정의 클래스와 "복사"이외의 원시 변수, 당신은 실제로 새로운 "참조"가 아니라 "복사"를 확인합니다. 복사본을 만들려면 새 인스턴스를 만들고 원래 인스턴스의 프리미티브를 새 인스턴스로 복사해야합니다.
Primitives.

+0

그래, 고마워! 클래스를 가지고 어떻게 이런 일을 할 수 있을까요? 저는 ConvoyShip 클래스와 그것들을 모두 포함하는 배열을 가지고 있습니다. 배열을 하위 클래스의 배열로 복사하고 모든 것을 수행하면 훨씬 쉽습니다. 예측하지만, 다시 같은 문제에 빠지게됩니다! (저는 약간의 초보자입니다, 이것이 바보 같은 질문이라면 유감입니다.) – Cogythea

+0

그래도 Vector2가 아닌 무언가를 어떻게 할 수 있습니까? – Cogythea

+0

프리미티브를 복사해야합니다. – Zhafur

관련 문제