객체의 실행 순서를 설정합니다.
7563 단어 Unity
하고 싶은 일
사격을 예로 들면, 아래의 처리를 임의의 순서로 실행하기를 희망한다.
1. 모바일 유저.
2. 적들이 총알을 생성하다.
3. 당첨 판정을 집행하다.
기본 처리 순서 정보
Unity에서 다음과 같은 이벤트 함수(정의만 하면 자동으로 호칭되는 함수)의 실행 순서가 정해지지 않았습니다.
・Awake
시작하다
업데이트
처리 순서 변경(상속 없음)
테스트로 동일한 이름의 객체에 다음 클래스, Objecta, B, C를 첨부합니다.
(정확히 말하면 Unity를 다시 시작할 시기)public class ObjectA : MonoBehaviour
{
DateTime dt;
void Awake() {OutLog("Awake"); }
void Start() {OutLog("Start"); }
void Update() {OutLog("Update");}
void OutLog(string funcName)
{
dt = DateTime.Now;
Debug.Log(name + " - " + funcName + " : <frame/time>" + Time.frameCount + "/" + dt.Second + "." + dt.Millisecond);
}
}
스크립트의 실행 순서를 설정합니다.
아래 사이트지만
· 스크립트 파일에서 [검사기 -> 주문 실행] 을 선택합니다.
/다음 그림과 같이 낮은 값에서 낮은 값으로 Default Time에 스크립트를 추가합니다.
기본 시간
・ 공식 참조에서 기본 시간에 대한 정의를 찾을 수 없습니다.
・ 시도에서 설정된 수치는 10000 각도로 설정되지만 실행이 특별히 지연되지 않기 때문에 초나 밀리초가 아니라 단순한 순서 번호로 처리됩니다.
처리 순서 변경(상속)
실제로 게임을 만들다 보면 다태주의를 이용하려는 경우가 생긴다.
예를 들어 적을 파생시킨 적 1류, 적 2류...
이 모든 파생류에 대해 처리 순서를 설정하면 골치 아프다.
따라서 기본 클래스에서만 처리 순서가 정확하고 유효한지 시험해 보세요.public class Prefub : MonoBehaviour
{
public GameObject enemyPrefub;
public GameObject playerPrefub;
public void Start()
{
GameObject enemy;
GameObject player;
// Player A,B,C / Enemy A,B,Cを動的に生成する。
enemy = Instantiate(enemyPrefub);
enemy.AddComponent<EnemyC>();
player = Instantiate(playerPrefub);
player.AddComponent<PlayerC>();
enemy = Instantiate(enemyPrefub);
enemy.AddComponent<EnemyB>();
player = Instantiate(playerPrefub);
player.AddComponent<PlayerB>();
enemy = Instantiate(enemyPrefub);
enemy.AddComponent<EnemyA>();
player = Instantiate(playerPrefub);
player.AddComponent<PlayerA>();
}
}
결과
(EnemyC -> PlayerC -> EnemyB -> PlayerB -> EnmeyA -> PlayerA)
업데이트()는 예상한 결과가 아닌 생성과 같은 순서로 호출됩니다.
결론
당분간 Enemy는 Enemy Manager로, Player는 Player Manager로 통합됩니다.
PlayerManager->Update, EnemyManager->Update 및 객체 범주에 따라 처리하면 일시적으로 해결할 수 있습니다.
웹 페이지 정보
[Unity] 대상 순서대로 처리하려면 스크립트의 실행 순서를 지정합니다.
이벤트 함수
이벤트 함수의 실행 순서
Script Execution Order Settings
[이해했다!]스마트폰을 위한 유니티 스크립트 실행 순서의 수수께끼
Reference
이 문제에 관하여(객체의 실행 순서를 설정합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ogawa-to/items/f8c26193cacfa3d2d666
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Unity에서 다음과 같은 이벤트 함수(정의만 하면 자동으로 호칭되는 함수)의 실행 순서가 정해지지 않았습니다.
・Awake
시작하다
업데이트
처리 순서 변경(상속 없음)
테스트로 동일한 이름의 객체에 다음 클래스, Objecta, B, C를 첨부합니다.
(정확히 말하면 Unity를 다시 시작할 시기)public class ObjectA : MonoBehaviour
{
DateTime dt;
void Awake() {OutLog("Awake"); }
void Start() {OutLog("Start"); }
void Update() {OutLog("Update");}
void OutLog(string funcName)
{
dt = DateTime.Now;
Debug.Log(name + " - " + funcName + " : <frame/time>" + Time.frameCount + "/" + dt.Second + "." + dt.Millisecond);
}
}
스크립트의 실행 순서를 설정합니다.
아래 사이트지만
· 스크립트 파일에서 [검사기 -> 주문 실행] 을 선택합니다.
/다음 그림과 같이 낮은 값에서 낮은 값으로 Default Time에 스크립트를 추가합니다.
기본 시간
・ 공식 참조에서 기본 시간에 대한 정의를 찾을 수 없습니다.
・ 시도에서 설정된 수치는 10000 각도로 설정되지만 실행이 특별히 지연되지 않기 때문에 초나 밀리초가 아니라 단순한 순서 번호로 처리됩니다.
처리 순서 변경(상속)
실제로 게임을 만들다 보면 다태주의를 이용하려는 경우가 생긴다.
예를 들어 적을 파생시킨 적 1류, 적 2류...
이 모든 파생류에 대해 처리 순서를 설정하면 골치 아프다.
따라서 기본 클래스에서만 처리 순서가 정확하고 유효한지 시험해 보세요.public class Prefub : MonoBehaviour
{
public GameObject enemyPrefub;
public GameObject playerPrefub;
public void Start()
{
GameObject enemy;
GameObject player;
// Player A,B,C / Enemy A,B,Cを動的に生成する。
enemy = Instantiate(enemyPrefub);
enemy.AddComponent<EnemyC>();
player = Instantiate(playerPrefub);
player.AddComponent<PlayerC>();
enemy = Instantiate(enemyPrefub);
enemy.AddComponent<EnemyB>();
player = Instantiate(playerPrefub);
player.AddComponent<PlayerB>();
enemy = Instantiate(enemyPrefub);
enemy.AddComponent<EnemyA>();
player = Instantiate(playerPrefub);
player.AddComponent<PlayerA>();
}
}
결과
(EnemyC -> PlayerC -> EnemyB -> PlayerB -> EnmeyA -> PlayerA)
업데이트()는 예상한 결과가 아닌 생성과 같은 순서로 호출됩니다.
결론
당분간 Enemy는 Enemy Manager로, Player는 Player Manager로 통합됩니다.
PlayerManager->Update, EnemyManager->Update 및 객체 범주에 따라 처리하면 일시적으로 해결할 수 있습니다.
웹 페이지 정보
[Unity] 대상 순서대로 처리하려면 스크립트의 실행 순서를 지정합니다.
이벤트 함수
이벤트 함수의 실행 순서
Script Execution Order Settings
[이해했다!]스마트폰을 위한 유니티 스크립트 실행 순서의 수수께끼
Reference
이 문제에 관하여(객체의 실행 순서를 설정합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ogawa-to/items/f8c26193cacfa3d2d666
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
public class ObjectA : MonoBehaviour
{
DateTime dt;
void Awake() {OutLog("Awake"); }
void Start() {OutLog("Start"); }
void Update() {OutLog("Update");}
void OutLog(string funcName)
{
dt = DateTime.Now;
Debug.Log(name + " - " + funcName + " : <frame/time>" + Time.frameCount + "/" + dt.Second + "." + dt.Millisecond);
}
}
실제로 게임을 만들다 보면 다태주의를 이용하려는 경우가 생긴다.
예를 들어 적을 파생시킨 적 1류, 적 2류...
이 모든 파생류에 대해 처리 순서를 설정하면 골치 아프다.
따라서 기본 클래스에서만 처리 순서가 정확하고 유효한지 시험해 보세요.
public class Prefub : MonoBehaviour
{
public GameObject enemyPrefub;
public GameObject playerPrefub;
public void Start()
{
GameObject enemy;
GameObject player;
// Player A,B,C / Enemy A,B,Cを動的に生成する。
enemy = Instantiate(enemyPrefub);
enemy.AddComponent<EnemyC>();
player = Instantiate(playerPrefub);
player.AddComponent<PlayerC>();
enemy = Instantiate(enemyPrefub);
enemy.AddComponent<EnemyB>();
player = Instantiate(playerPrefub);
player.AddComponent<PlayerB>();
enemy = Instantiate(enemyPrefub);
enemy.AddComponent<EnemyA>();
player = Instantiate(playerPrefub);
player.AddComponent<PlayerA>();
}
}
결과
(EnemyC -> PlayerC -> EnemyB -> PlayerB -> EnmeyA -> PlayerA)
업데이트()는 예상한 결과가 아닌 생성과 같은 순서로 호출됩니다.
결론
당분간 Enemy는 Enemy Manager로, Player는 Player Manager로 통합됩니다.
PlayerManager->Update, EnemyManager->Update 및 객체 범주에 따라 처리하면 일시적으로 해결할 수 있습니다.
웹 페이지 정보
[Unity] 대상 순서대로 처리하려면 스크립트의 실행 순서를 지정합니다.
이벤트 함수
이벤트 함수의 실행 순서
Script Execution Order Settings
[이해했다!]스마트폰을 위한 유니티 스크립트 실행 순서의 수수께끼
Reference
이 문제에 관하여(객체의 실행 순서를 설정합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ogawa-to/items/f8c26193cacfa3d2d666
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
[Unity] 대상 순서대로 처리하려면 스크립트의 실행 순서를 지정합니다.
이벤트 함수
이벤트 함수의 실행 순서
Script Execution Order Settings
[이해했다!]스마트폰을 위한 유니티 스크립트 실행 순서의 수수께끼
Reference
이 문제에 관하여(객체의 실행 순서를 설정합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ogawa-to/items/f8c26193cacfa3d2d666텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)