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(); } } } }
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); } }