๋ฉ์ธ์ฌ๊ณผ ๋ค๋ฅธ ๋ค๋ฅธ ๋ฌผ๋ฆฌ ๊ณต๊ฐย ๊ตฌ์ถ ๊ฐ๋ฅ.
์ฌ์ฉ ๋ชฉ์ :
- ๋ฉํฐ๊ฒ์ ์๋ฒ์์ ์ฌ๋ฌ ๊ฒฝ๊ธฐ ์๋ฎฌ๋ ์ด์ .
- ๋ฉ์ธ ์ฌ์ ๋ฌผ๋ฆฌ ์๋ฎฌ๋ ์ด์ (๊ถค๋ ์์ธก ๋ฑ).ย
์ด๊ฑธ ์ฐพ๋๋ ๊ฐ๊ณ ์ํจ ใ ใ
์ฌ๋ฌ๋ถ์ ๊ณ ์ ํ์ง ๋ง์ธ์ =)
ใ ใ ใ ;;
*์ ๋ํฐ ๋ฒ์ 2023.2.12f1
using UnityEngine;
using UnityEngine.SceneManagement;
public class Script : MonoBehaviour
{
ย ย // ๋์ ์ผ๋ก ์์ฑํ ์ฌ์ ์ด๋ฆ
ย ย public string newSceneName = "NewScene";
ย ย private Scene physicsScene;
ย ย // ์์ฑํ ํ๋ฆฌํน
ย ย public GameObject obj;
ย ย void Start()
ย ย {
ย ย ย ย // ์ฌ ์์ฑ
ย ย ย ย physicsScene = CreateNewScene(newSceneName);
ย ย }
ย ย private void Update()
ย ย {
ย ย ย ย if(Input.GetKeyDown(KeyCode.S)) {
ย ย ย ย ย ย //์ค๋ธ์ ํธ ์์ฑ
ย ย ย ย ย ย CreateObjectInScene(physicsScene);
ย ย ย ย }
ย ย }
ย ย Scene CreateNewScene(string sceneName)
ย ย {
ย ย ย ย // ์๋ก์ด ๋ฌผ๋ฆฌ์ ๊ณต๊ฐ(PhysicsScene)๊ณผ ํจ๊ป ์ฌ ์์ฑ
ย ย ย ย CreateSceneParameters parameters = new CreateSceneParameters(LocalPhysicsMode.Physics2D);
ย ย ย ย Scene newScene = SceneManager.CreateScene(sceneName, parameters);
ย ย ย ย // ๋ ๋ฆฝ์ ์ธ ๋ฌผ๋ฆฌ ๊ณต๊ฐ์์ ์ฌ์ฉํ ์ค๋ธ์ ํธ ์์ฑ
ย ย ย ย CreateObjectInScene(newScene);
ย ย ย ย return newScene;
ย ย }
ย ย void CreateObjectInScene(Scene scene)
ย ย {
ย ย ย ย GameObject newObject = Instantiate(obj);
ย ย ย ย // ์ค๋ธ์ ํธ ์์น ์ค์
ย ย ย ย newObject.transform.position = new Vector3(0, 10, 0);
ย ย ย ย // ์ค๋ธ์ ํธ๋ฅผ ์๋กญ๊ฒ ์์ฑํ ์ฌ์ ์ถ๊ฐ
ย ย ย ย SceneManager.MoveGameObjectToScene(newObject, scene);
ย ย }
ย ย private void FixedUpdate()
ย ย {
ย ย ย ย // physicsScene2D์ด ์ ํจํ์ง ํ์ธ
ย ย ย ย if (physicsScene.GetPhysicsScene2D().IsValid())
ย ย ย ย {
ย ย ย ย ย ย // ์๋์ผ๋ก ์คํ (*์๋์ผ๋ก ์ ๋ฐ์ดํธ ๋์ง ์์*)
ย ย ย ย ย ย physicsScene.GetPhysicsScene2D().Simulate(Time.fixedDeltaTime);
ย ย ย ย }
ย ย }
}
์ด ๊ธ์ 2๋ ์ ์ ๋ดค๋๋ผ๋ฉด