void Awake()
 {
     projectileRigidbody            = GetComponent <Rigidbody>();
     projectileRigidbody.useGravity = gravityAffected;
     portalableObject = GetComponent <PortalableObject>();
     portalableObject.HasTeleported += PortalableObjectOnHasTeleported;
 }
Exemplo n.º 2
0
 public void ResetObjectInPortal(PortalableObject portalable)
 {
     if (portalObjects.Contains(portalable))
     {
         portalObjects.Remove(portalable);
         portalable.ExitPortal(wallColliders);
     }
 }
    private void Start()
    {
        characterController             = GetComponent <CharacterController>();
        portalableObject                = GetComponent <PortalableObject>();
        portalableObject.HasTeleported += PortalableObjectOnHasTeleported;

        Cursor.visible   = false;
        Cursor.lockState = CursorLockMode.Locked;
    }
Exemplo n.º 4
0
    public void Transport(PortalableObject target)
    {
        LockPortal();
        // Debug.Log(gameObject.name + " transport");
        var targetPos = transform.position;

        targetPos.z = LayerZ.CHARACTER;
        target.transform.position = targetPos;
    }
Exemplo n.º 5
0
    protected override void Start()
    {
        base.Start();
        thisRigidbody.useGravity = false;

        PortalableObject portalableObject = GetComponent <PortalableObject>();

        if (portalableObject != null)
        {
            portalableObject.OnObjectTeleported += ReorientGravityAfterPortaling;
        }
    }
Exemplo n.º 6
0
    private void OnTriggerExit(Collider other)
    {
        if (!enableTeleportation)
        {
            return;
        }

        // Untrack object no longer going through the portal
        PortalableObject portalableObject = other.GetComponent <PortalableObject>();

        if (portalableObject)
        {
            objectsInPortal.Remove(portalableObject);
        }
    }
Exemplo n.º 7
0
    private void OnTriggerEnter(Collider other)
    {
        if (!enableTeleportation)
        {
            return;
        }

        // Track object going through the portal
        // So we can teleport it instantly when it reaches the other side
        PortalableObject portalableObject = other.GetComponent <PortalableObject>();

        if (portalableObject)
        {
            //Debug.Log("Object added to portal");
            objectsInPortal.Add(portalableObject);
        }
    }
Exemplo n.º 8
0
    private void Awake()
    {
        if (local)
        {
            LocalInstance = this;
        }

        portalableObject = GetComponent <PortalableObject>();
        portalableObject.HasTeleported += OnTeleported;

        clones = GetComponentsInChildren <AbstractClone>();
        foreach (var clone in clones)
        {
            clone.OnCloneAwake();
        }

        cloningBounds.PortalEnter += OnEnterPortal;
        cloningBounds.PortalExit  += OnExitPortal;
    }
Exemplo n.º 9
0
    IEnumerator Start()
    {
        debug = new DebugLogger(gameObject, () => DEBUG);

        originalPortalableObj = original.GetComponent <PortalableObject>();

        // Disallow collisions between a portal object and its copy
        foreach (var c1 in colliders)
        {
            foreach (var c2 in originalPortalableObj.colliders)
            {
                SuperspectivePhysics.IgnoreCollision(c1, c2);
            }
        }

        InteractableObject maybeInteract = original.GetComponent <InteractableObject>();

        maybeOriginalGlow = original.GetComponent <InteractableGlow>();

        if (maybeInteract != null)
        {
            InteractableObject interact = gameObject.AddComponent <InteractableObject>();
            interact.glowColor         = maybeInteract.glowColor;
            interact.overrideGlowColor = maybeInteract.overrideGlowColor;

            interact.OnLeftMouseButton     += maybeInteract.OnLeftMouseButton;
            interact.OnLeftMouseButtonDown += maybeInteract.OnLeftMouseButtonDown;
            interact.OnLeftMouseButtonUp   += maybeInteract.OnLeftMouseButtonUp;

            interact.OnMouseHover      += maybeInteract.OnMouseHover;
            interact.OnMouseHoverEnter += maybeInteract.OnMouseHoverEnter;
            interact.OnMouseHoverExit  += maybeInteract.OnMouseHoverExit;
        }

        TransformCopy();

        yield return(null);

        glow = GetComponent <InteractableGlow>();
    }
Exemplo n.º 10
0
 private void Start()
 {
     characterController             = GetComponent <CharacterController>();
     portalableObject                = GetComponent <PortalableObject>();
     portalableObject.HasTeleported += PortalableObjectOnHasTeleported;
 }
 private void Start()
 {
     agent            = GetComponent <NavMeshAgent>();
     portalableObject = GetComponent <PortalableObject>();
     portalableObject.HasTeleported += PortalableObjectOnHasTeleported;
 }