示例#1
0
        void OnTriggerStay2D(Collider2D other)
        {
            Character2D PossibleUser = other.gameObject.GetComponent <Character2D>();

            if (PossibleUser && MyCharacters.Contains(PossibleUser))
            {
                int Index = MyCharacters.IndexOf(PossibleUser);
                if (Time.time - TimeEntered[Index] >= TeleportTime)
                {
                    Debug.Log("Teleporting and removing " + PossibleUser.name);
                    PossibleUser.transform.position = OtherTeleporter.transform.position;
                    UserControl2D MyUser = PossibleUser.gameObject.GetComponent <UserControl2D>();
                    if (MyUser)
                    {
                        MyUser.TeleportCamera();
                    }

                    /*if (IsParticlesAnimating)
                     * {
                     *  GameObject MyParticleSpawn = Instantiate(TeleporterParticles, transform.position);
                     * }*/
                    GameObject MyParticleSpawn = Instantiate(TeleporterParticles, transform.position, Quaternion.identity);
                    Destroy(MyParticleSpawn, 6f);
                    GameObject MyParticleSpawn2 = Instantiate(TeleporterParticles, OtherTeleporter.transform.position, Quaternion.identity);
                    Destroy(MyParticleSpawn2, 6f);
                    MyParticleSpawn.transform.eulerAngles  = new Vector3(90, 0, 0);
                    MyParticleSpawn2.transform.eulerAngles = new Vector3(90, 0, 0);

                    MyCharacters.RemoveAt(Index);
                    TimeEntered.RemoveAt(Index);
                    OtherTeleporter.IgnoreForCharacter(PossibleUser);
                    StartCoroutine(DisableCharacterForTime(PossibleUser));
                }
            }
        }
示例#2
0
 private void SetCharacterMovement(Character2D MyCharacter, bool NewState)
 {
     if (MyCharacter)
     {
         MyCharacter.SetMovement(NewState);
         UserControl2D MyControl = MyCharacter.gameObject.GetComponent <UserControl2D>();
         if (MyControl)
         {
             MyControl.enabled = NewState;
         }
     }
 }
示例#3
0
 protected override void Start()
 {
     base.Start();
     if (target == null)
     {
         UserControl2D MyPlayer = GameObject.FindObjectOfType <UserControl2D>();
         if (MyPlayer)
         {
             SetTarget(MyPlayer.transform, CameraPositionAddition);
         }
     }
     else
     {
         Debug.LogError("Cannot find UserControl2D in scene.");
     }
 }
示例#4
0
        private IEnumerator DisableCharacterForTime(Character2D PossibleUser)
        {
            //PossibleUser.gameObject.SetActive(false);
            UserControl2D   MyUser   = PossibleUser.gameObject.GetComponent <UserControl2D>();
            MinionControl2D MyMinion = PossibleUser.gameObject.GetComponent <MinionControl2D>();

            PossibleUser.enabled = false;
            PossibleUser.transform.GetChild(0).gameObject.SetActive(false);
            if (MyUser)
            {
                MyUser.enabled = false;
            }
            else if (MyMinion)
            {
                MyMinion.enabled = false;
            }
            yield return(new WaitForSeconds(1f));

            PossibleUser.transform.GetChild(0).gameObject.SetActive(true);
            float   TimeBegun      = Time.time;
            Vector3 OriginalVector = PossibleUser.transform.localScale;

            while (Time.time - TimeBegun <= 1.5f)
            {
                PossibleUser.transform.localScale = Vector3.Lerp(new Vector3(0.1f, 0.1f, 0.1f), OriginalVector, (Time.time - TimeBegun) / 1.5f);
                yield return(null);
            }
            PossibleUser.transform.localScale = OriginalVector;
            //PossibleUser.gameObject.SetActive(true);
            PossibleUser.enabled = true;
            if (MyUser)
            {
                MyUser.enabled = true;
            }
            else if (MyMinion)
            {
                MyMinion.enabled = true;
            }
        }