private void OnTriggerEnter2D(Collider2D other)
 {
     if (other.CompareTag("Interactable"))
     {
         currentObj       = other.gameObject;
         currentObjScript = currentObj.GetComponent <InteractableBehaviour>();
     }
 }
示例#2
0
 private void Start()
 {
     LightCollectable      = 0;
     lightHolder           = GameObject.Find("Light holder");
     interactableBehaviour = lightHolder.GetComponent <InteractableBehaviour>();
     lightSlider.maxValue  = interactableBehaviour.requiredLightMaterial;
     lightSlider.value     = 0;
 }
 private void OnTriggerExit2D(Collider2D other)
 {
     if (other.CompareTag("Interactable"))
     {
         if (other.gameObject == currentObj)
         {
             currentObj       = null;
             currentObjScript = null;
         }
     }
 }
示例#4
0
    //Interactables with the tag "'Round ' + currentRound'" will be turned on after the final boss moves.
    void TurnOnInteractables()
    {
        string tag = "Round " + currentRound;

        GameObject[]            interactableObjects = GameObject.FindGameObjectsWithTag(tag);
        InteractableBehaviour[] interactables       = new InteractableBehaviour[interactableObjects.Length];

        for (int i = 0; i < interactables.Length; ++i)
        {
            interactables[i] = interactableObjects[i].GetComponent <InteractableBehaviour>();
            interactables[i].PowerOn();
        }
    }
示例#5
0
    // Start is called before the first frame update
    void Start()
    {
        sr           = GetComponentInChildren <SpriteRenderer>();
        anim         = GetComponentInChildren <Animator>();
        col          = GetComponent <BoxCollider2D>();
        interactable = GetComponent <InteractableBehaviour>();

        hspeed   = 0f;
        vspeed   = 0f;
        initDist = 0f;

        isDead = false;
    }
示例#6
0
    public void GenerateInteractionSphere(Transform parent)
    {
        if (!SphereGenerated)
        {
            SphereGenerated = true;
            GameObject obj = GameObject.CreatePrimitive(PrimitiveType.Sphere);
            obj.transform.position = position;

            MeshRenderer rend = obj.GetComponent <MeshRenderer>();
            rend.material = Resources.Load <Material>("Oscillate");

            obj.GetComponent <Renderer>().enabled = false;
            obj.transform.SetParent(parent, false);

            SphereCollider collider = obj.GetComponent <SphereCollider>();
            collider.radius = 0.75f;

            GameObject   obj2   = GameObject.CreatePrimitive(PrimitiveType.Sphere);
            SphereToggle toggle = obj2.AddComponent <SphereToggle>();
            obj2.transform.position = position;
            obj2.transform.SetParent(parent, false);
            obj2.tag = "Memory";

            GameObject souls             = GameObject.Instantiate(Resources.Load <GameObject>("Soul Anchor"));
            var        soulSystem        = souls.GetComponentInChildren <ParticleSystem>();
            var        soulEmissionShape = soulSystem.shape;
            soulEmissionShape.radius = radius;

            toggle.toggle = rend;

            souls.transform.position = Vector3.zero;
            souls.transform.SetParent(obj2.transform, false);

            InteractableBehaviour interactable = obj.AddComponent <InteractableBehaviour>();
            interactable.AttachInteractor(this);

            GameObject.Destroy(obj2.GetComponent <Renderer>());
            SphereCollider trigger = obj2.GetComponent <SphereCollider>();
            trigger.isTrigger = true;
            trigger.radius    = radius;

            InteractableObject = obj;
            InteractionSphere  = toggle;
        }
    }
示例#7
0
    public void Update()
    {
        RaycastHit hit;

        Physics.Raycast(gameObject.transform.position, gameObject.transform.forward, out hit);
        if (hit.collider != null && hit.collider.gameObject != null && hit.distance <= MaxDistance)
        {
            InteractableBehaviour behaviour = hit.collider.gameObject.GetComponent <InteractableBehaviour>();
            if (behaviour != null)
            {
                behaviour.Hover();
                if (Input.GetMouseButtonDown(0))
                {
                    behaviour.Interact();
                }
            }
        }
    }
示例#8
0
    public void GenerateInteractionSphere(Transform parent)
    {
        if (!SphereGenerated)
        {
            SphereGenerated = true;
            GameObject obj = GameObject.CreatePrimitive(PrimitiveType.Sphere);
            obj.transform.position = position;
            SphereCollider collider = obj.GetComponent <SphereCollider>();
            collider.radius = 0.75f;

            MeshRenderer rend = obj.GetComponent <MeshRenderer>();
            rend.material = Resources.Load <Material>("Oscillate");

            obj.transform.SetParent(parent, false);

            InteractableBehaviour interactable = obj.AddComponent <InteractableBehaviour>();
            interactable.AttachInteractor(this);
        }
    }
示例#9
0
    public override void Bind(CargoItemTradeViewModel model)
    {
        base.Bind(model);

        Interactable = GetComponent <InteractableBehaviour>();

        Amount?.Bind(new BoundModel <int>(Model, nameof(Model.AmountKg)).AsString());
        Name?.Bind(new BoundModel <string>(Model, nameof(Model.Name)));
        Icon?.Bind(new BoundModel <Sprite>(Model, nameof(Model.Icon)));
        Price?.Bind(new BoundModel <string>(Model, nameof(Model.PriceStr)));
        Hint?.Bind(new BoundModel <string>(Model, nameof(Model.HintStr)));

        if (SelectedHandle != null)
        {
            Unsubscribe(SelectedHandle);
        }
        SelectedHandle = Subscribe(() => model.Parent.PropertyChanged += OnSelectedChanged, () => model.Parent.PropertyChanged -= OnSelectedChanged);
        RefreshSelection();
    }
示例#10
0
 public void SetInteractuable(GameObject type)
 {
     ActiveInteractable     = true;
     Interactable           = GameObject.Instantiate(type, this.transform);
     _interactableBehaviour = Interactable.GetComponent <InteractableBehaviour> ();
 }
示例#11
0
 private void Start()
 {
     interactableBehaviour = lightHolder.GetComponent <InteractableBehaviour>();
 }
    private void SelectObject()
    {
        //Selects an object the player is pointing at.

        selectedObject = null;

        RaycastHit hit;
        if (Physics.Raycast(myCamera.position, myCamera.forward, out hit, interactReach))
        {
            InteractableBehaviour obj = hit.transform.GetComponent<InteractableBehaviour>();
            if (obj != null)
            {
                selectedObject = obj;
            }
        }
    }
示例#13
0
 private void Start()
 {
     interactableBehaviour = Switch.GetComponent <InteractableBehaviour>();
     timer = 0;
 }