Пример #1
0
    public static void MoveObjectToScene(GameObject go, SceneField targetScene)
    {
        if (targetScene.SceneName.Length < 1)
        {
            return;
        }
        Scene s = SceneManager.GetSceneByName(targetScene.SceneName);

        Debug.Log(s);
        if (s != null)
        {
            SceneManager.MoveGameObjectToScene(go, s);
            SaveObjManager.MoveItem(go, targetScene.SceneName, go.transform.position);
        }
        else
        {
            SaveObjManager.MoveItem(go, targetScene.SceneName, go.transform.position);
            Destroy(go);
        }
    }
Пример #2
0
    protected override void onTrigger(GameObject interactor)
    {
        if (interactor != null)
        {
            if (interactor.GetComponent <Attackable> ().Alive == false)
            {
                return;
            }
            TriggerUsed = true;
            if (TriggerID != "none")
            {
                RoomDirection realDir    = dir;
                string        realTarget = TargetTriggerID;
                if (TargetTriggerID == "none")
                {
                    realTarget = TriggerID;
                }
                if (realDir == RoomDirection.AUTO)
                {
                    float diffX = transform.position.x - interactor.transform.position.x;
                    float diffY = transform.position.y - interactor.transform.position.y;
                    if (Mathf.Abs(diffX) > Mathf.Abs(diffY))
                    {
                        if (diffX < 0f)
                        {
                            realDir = RoomDirection.LEFT;
                        }
                        else
                        {
                            realDir = RoomDirection.RIGHT;
                        }
                    }
                    else
                    {
                        if (diffY > 0f)
                        {
                            realDir = RoomDirection.UP;
                        }
                        else
                        {
                            realDir = RoomDirection.DOWN;
                        }
                    }
                }
                if (interactor.GetComponent <PersistentItem>() != null)
                {
                    SaveObjManager.MoveItem(interactor, NextSceneName, realTarget, realDir);
                }
            }
            else if (Vector2.Equals(Vector2.zero, newPos) && (interactor.GetComponent <PersistentItem>() != null))
            {
                SaveObjManager.MoveItem(interactor, NextSceneName, interactor.gameObject.transform.position);
            }
            else if (interactor.GetComponent <PersistentItem>() != null)
            {
                SaveObjManager.MoveItem(interactor, NextSceneName, newPos);
            }
            if (true)               //interactor.GetComponent<CharacterBase> ().IsCurrentPlayer) {
            //GameManager.Instance.LoadRoom (sceneName);

            {
                Initiate.Fade(NextSceneName, Color.black, 5.0f);
            }
            Destroy(interactor);
        }
    }
Пример #3
0
 protected virtual void changeRoom(GameObject go)
 {
     if (go.GetComponent <BasicMovement> ())
     {
         if (go.GetComponent <Attackable> ().Alive == false)
         {
             return;
         }
         TriggerUsed = true;
         if (TriggerID != "none")
         {
             RoomDirection realDir    = dir;
             string        realTarget = TargetTriggerID;
             if (TargetTriggerID == "none")
             {
                 realTarget = TriggerID;
             }
             if (realDir == RoomDirection.NEUTRAL)
             {
                 float diffX = transform.position.x - go.transform.position.x;
                 float diffY = transform.position.y - go.transform.position.y;
                 if (Mathf.Abs(diffX) > Mathf.Abs(diffY))
                 {
                     if (diffX < 0f)
                     {
                         realDir = RoomDirection.LEFT;
                     }
                     else
                     {
                         realDir = RoomDirection.RIGHT;
                     }
                 }
                 else
                 {
                     if (diffY > 0f)
                     {
                         realDir = RoomDirection.UP;
                     }
                     else
                     {
                         realDir = RoomDirection.DOWN;
                     }
                 }
             }
             if (go.GetComponent <PersistentItem>() != null)
             {
                 SaveObjManager.MoveItem(go, sceneName, realTarget, realDir);
             }
         }
         else if (Vector2.Equals(Vector2.zero, newPos) && (go.GetComponent <PersistentItem>() != null))
         {
             SaveObjManager.MoveItem(go, sceneName, go.gameObject.transform.position);
         }
         else if (go.GetComponent <PersistentItem>() != null)
         {
             SaveObjManager.MoveItem(go, sceneName, newPos);
         }
         if (go.GetComponent <BasicMovement> ().IsCurrentPlayer)
         {
             //GameManager.Instance.LoadRoom (sceneName);
             Initiate.Fade(sceneName, Color.black, 5.0f);
         }
         Destroy(go);
     }
     else
     {
     }
 }