//What happens when contact is made with the item. private void OnContact(ListObjectInstance itemInstance) { switch (itemBehavior) { case ItemBehavior.moveItem: itemInstance.ThisItemMoved(); break; case ItemBehavior.openItem: itemInstance.ThisItemSelected(); break; case ItemBehavior.closeItem: itemInstance.ThisItemClosed(); break; case ItemBehavior.deleteItem: itemInstance.ThisItemDeleted(); break; default: Debug.Log("ItemOnContactBehavior: No item behavior selected."); break; } if (contactFX != null) Destroy(Instantiate(contactFX, transform), 2); if (contactAudio != null) source.PlayOneShot(contactAudio); if (destroyAfter) Destroy(itemInstance.gameObject); }
private void OnTriggerEnter(Collider other) { ListObjectInstance itemInstance = other.gameObject.GetComponent <ListObjectInstance>(); if (itemInstance != null) { if (onTriggerContact != null) { onTriggerContact.Invoke(itemInstance); } } }
private void OnCollisionEnter(Collision collision) { ListObjectInstance itemInstance = collision.gameObject.GetComponent <ListObjectInstance>(); if (itemInstance != null) { if (onCollisionContact != null) { onCollisionContact.Invoke(itemInstance); } } }
private IEnumerator SpawnItem(Vector3 spawnPosition, ListObjectInfo item, float spawnTime) { //The drop start position is slightly above spawn position by the ammount of the distance between items GameObject itemVisualRepresentation = Instantiate(listItemObjectPrefab, transform.position + spawnPosition, transform.localRotation); Vector3 dropStartPos = new Vector3(spawnPosition.x, spawnPosition.y + distBetweenItemCenter, spawnPosition.z); ListObjectInstance itemInstance = itemVisualRepresentation.GetComponent <ListObjectInstance>(); itemVisualRepresentation.transform.SetParent(gameObject.transform); itemVisualRepresentation.name = item.ObjectName; itemVisualRepresentation.transform.localPosition = dropStartPos; item.ObjectTransform = itemVisualRepresentation.transform; item.ParentTransform = transform; item.OriginPos = spawnPosition; item.OriginRot = new Quaternion(0, 0, 0, 0); //Give the item information about what it is. itemInstance.itemInfo = item; //Give the item a referance to the view. **Dude this is stupid wise up and fix this** itemInstance.viewReferance = GetComponent <View>(); //Show 3D model of icon. if (item.IconModel != null) { ShowItemIconGameObject(item, itemVisualRepresentation); } //Wait for move to finish. yield return(StartCoroutine(MoveOverSeconds(itemVisualRepresentation.transform, dropStartPos, spawnPosition, spawnTime))); //Instantiate particle effects. if (spawnEffectPrefab != null) { Destroy(Instantiate(spawnEffectPrefab, itemVisualRepresentation.transform), 0.5f); } }