As to objects Dagger, Fish, …noName to receive object 3
Without knowing a name. The tag doesn’t approach because these objects can have other parents.
There are ideas?
transform.parent.transform.parent.gameObject.GetComponent or something else you need
If you just want to get parent in second iteration (parent of parent) then:
GameObject parent2 = transform.parent.parent.gameObject;//of course if parent might not be there then the second line of code after this one should be if(parent2 != null)
You can also use just tranform returned by parent if you don’t need anything else from your gameobject (e.g. transform.parent.parent).
The choise pretty much depends on what behavior you expect and if that parent has some uniquiness or not as well as if it will be always second iteration.