예제 #1
0
    void Send3DRayCast()
    {
        Ray        ray = mainCam.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;
        int        layermask = 1 << 11; //only check for object layers

        if (Physics.Raycast(ray, out hit, layermask))
        {
            if (hit.collider.CompareTag("object"))
            {
                objectBehavior thisObject = hit.collider.GetComponent <objectBehavior>();
                if (currentObject == null)
                {
                    if (!thisObject.equipped)
                    {
                        currentObject = thisObject;
                        thisObject.Interact(itemHolder);
                        thisObject.equipped = true;
                        Debug.Log("object equip");
                    }
                    else
                    {
                        thisObject.returnToStart();
                        Debug.Log("object return");
                    }
                }
                else
                {
                    if (thisObject.equipped)
                    {
                        thisObject.returnToStart();
                        currentObject = null;
                    }
                    else
                    {
                        currentObject.returnToStart();
                        currentObject = thisObject;
                        thisObject.Interact(itemHolder);
                    }
                }

                if (thisObject.used)
                {
                    thisObject.Remove();
                }
            }
        }
    }
예제 #2
0
    public void Interact(string item, GameObject prefab2D, objectBehavior realObject, Vector3 pos)
    {
        /*
         * if(myCollider.isTrigger)
         * {
         *  myCollider.isTrigger = false;
         *  gameObject.tag = "platform";
         *  GetComponent<SpriteRenderer>().sprite = platformSprite;
         * } else
         * {
         *  myCollider.isTrigger = true;
         *  gameObject.tag = "wall";
         *  GetComponent<SpriteRenderer>().sprite = currentSprite;
         * }
         */

        if (!turned)
        {
            Vector3 offset = new Vector3(0, 0, -0.2f);

            GameObject object2D = Instantiate(prefab2D, transform.position + offset, Quaternion.Euler(0, 0, 180), null);
            realObject.setObject2D(object2D);
        }
    }