Unity Android versions support?

Where can I get the list of Unity software versions along with a list of their supported versions of Android (APIs)? I can’t find any official documents for this.

you could do somethign like have 2 bools one for each object and then set it to true if the object hits and set it to false then it leaves and then check in the update if both is = true and if they are do whatever you want to happend then they both coollide with youre object soemthign like this

bool object1Bool
bool boject2Bool

public void Update(){
if (object1Bool && object2Bool)
{
// do whatever you want to happend then both hits
}
}

void OnCollisionEnter (Collision col)
      {
     if(col.gameObject.name == "object1")
     
object1Bool = true;
         Destroy(gameObject);
     }

     if(col.gameObject.name == "object2")
     
object2Bool = true;
         Destroy(gameObject);
     }
     }

void OnCollisionExit (Collision col)
      {
     if(col.gameObject.name == "object1")
     
object1Bool = false;
     }

     if(col.gameObject.name == "object2")
     
object2Bool = false;
     }

     }

Note this is untest code and may be full of Syntax errors

One approach would be to count the number of collisions, and only increment that variable if you collide with the specified object. If you need 2 objects to be checked if they collide with your target then you need to have 2 collisions registered. I used triggers instead of collisions, it may also work with collision, it just comes with habits, but correct me if using collisions is a more efficent way to do so. Attach this script to your Object/Player/Anything which needs to check if it collides with the other two objects.

EDIT: I edited the answer so it can even delete your colliding objects. The script assigns the colliding gameobject to either Object1, Object2 if it is colliding them, and when it is colliding with both, it destroys both of them.

using UnityEngine;
using System.Collections;

public class CheckColission : MonoBehaviour {
	public int nCollision;
	public GameObject Object1, Object2;
	
	// Update is called once per frame
	void Update () {
		if (nCollision == 2) {
			Debug.Log("Colliding with both. Destryoing both");
			GameObject.Destroy(Object1);
			GameObject.Destroy(Object2);
			//Null the objects again.
			Object1 = null;
			Object2 = null;
		}
	}
	
	void OnTriggerEnter(Collider other){
		if (other.gameObject.name == "Object1" ||  other.gameObject.name == "Object2") {
			nCollision++;
			//Assign the colliding object to either Object1 or Object2 for later destroying.
			if (Object1 == null) {
				Object1 = other.gameObject;
			} else {
				Object2 = other.gameObject;
			}
		}
	}
	
	void OnTriggerExit(Collider other){
		if (other.gameObject.name == "Object1" || other.gameObject.name == "Object2") {
			nCollision--;
			//Assign the colliding object to either Object1 or Object2 for later destroying.
			if (other.gameObject == Object1) {
				Object1 = null;
			} else if (other.gameObject == Object2) {
				Object2 = null;
			}
		}
	}
}

Take a timestamp using [realtimeSinceStartup][1] and compare them within a given range. A very flexible method.

I took the time to write you an example. Its just an idea of what you can do.

Notice the OnCollision function only contains one line of code. This line adds the Hit gameObject and its timestamp to a List for storage.

The List is just a helper which means our collisions dont need to be EXACTLY in sync.

In the Update I loop through the List and compare the timestamps. if the timestamps are within the amount defined by ‘diff’ variable they are considered to be in Sync and their colour is changed to red, so you can see it better.

Its a crude example and may have a few bugs if you really poke it, but it should give you an idea of what you can do with a timestamp.

To prevent memory snowballing, a timed function could remove Element 0 from the List, periodically.

I linked a GIF at the end so you can see what this code looks like, running.

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class SyncdCollisionFinder : MonoBehaviour {

	public List<GOStruct> ObList = new List<GOStruct>();
	
	void Start ()
	{
		ObList.Add(new GOStruct(0.0f, gameObject)); //Just testing the List
	}
	
	void Update ()
	{
		float tempTime = 0.0f; //For storing the time of last object iterated
		
		for (int i = 1; i < ObList.Count; i++)  //Iterate List
		{
			float diff = ObList*.tS - tempTime; //Find time difference of two last objects*
  •  	if (diff <= 0.1f)*
    
  •  	{*
    

_ ObList*.newGO.GetComponent().material.color = Color.red;_
_
ObList[i-1].newGO.GetComponent().material.color = Color.red;_
_
}*_

Debug.Log(ObList_.tS.ToString() + " " + ObList*.newGO.name);
tempTime = ObList.tS;
}
}*_

* void OnCollisionEnter ( Collision col )*
* {*
* ObList.Add(new GOStruct(Time.realtimeSinceStartup, col.gameObject));*
//On Collision Add object and recorded time to List
* }*

* //Creating a struct for placing more than 1 variable into each element of List.*
* public struct GOStruct*
* {*
* public float tS;*
* public GameObject newGO;*

* public GOStruct(float tS, GameObject newGO)*
* {*
* this.tS = tS;*
* this.newGO = newGO;*
* }*
* } *
}
[What the code does][2]
If the animated gif works.
*[1]: http://docs.unity3d.com/ScriptReference/Time-realtimeSinceStartup.html*_
*[2]: http://s22.postimg.org/7u5th4y5t/SYNCCOLLISIONS.gif*_