Hello,
I want to activate the gameobject when it enters in to my camera view. I know the solution for deactivation using OnBecameInvisible().
OnBecamevisible() is no use for me as the game object is already deactivated and it won’t be called.
Any other solution for this scenario. I have many game objects around 18k. And it should be compatible with iPhone3gs. Because of many game objects My game legs.
18,000! WoW… WOW… are you sure so many are needed? There must be a way to simply this first off. I don’t know if there is a native way, but what’s wrong with setting a bool to skip the body of Update function, and setting the bool again after it becomes visible rather than shutting it down completely? I mean, you can check all 18K objects angles relative to the camera forward (and add distance in there perhaps), but you are still checking 18k objects every frame or so (hopefully not every frame). I mean, consider modern RTS games - it’s amazing they have a few hundred active entities, and they are optimized in every way for a PC in C++.
anyway, another way, is to group them if possible (if they can be grouped by remaining int eh same area)- make one a parent, shut the children down, leave the parent running to check when it’s visible again, and it can activate/deactivate the children when it is.
18,000! Your next post question needs to be 'How can I reduce 18,000 active entities if I’m doing…" 
I had a problem like this one lately.
I hope this will help you:
void Start() {
InvokeRepeating("MakeVisible", 0.0f, 0.5f);
}
void MakeVisible() {
if(gameObject.activeSelf == false) {
if(Camera.current != null) {
Vector3 pos = Camera.current.WorldToViewportPoint(transform.position);
if(pos.z > 0 && pos.x >= 0.0f && pos.x <=1.0f && pos.y >= 0.0f && pos.y <=1.0f) {
if(isDebug) Debug.Log (pos.ToString("F4"));
gameObject.SetActive(true);
}
}
}
}
Another solution may be to use the GeometryUtility class.