Can Object.SendMessage be used to send 2 arguments?

I have the player Camera using a raycast to find the normal of the object the player is looking at. I need to SendMessage both an object type and the normal to the object the player is looking at whiich has a function that loks something like:

void Contruct(Gameobject build, Vector3 position){
     instatiate(build,gameobject.position + position,gameobject.rotation);
}

But using SendMessage(“Construct”,object,vector3) throws an error because it thinks the Vector3 should be SendMessage options.

You could create a wrapper class that encapsulates all the data you need to send.

Something like this:

//The Wrapper class
public class Wrapper {
	public GameObject build;
	public Vector3 position;
	
	public Wrapper(GameObject go, Vector3 normal) {
		build = go;
		position = normal;
	}
}

//Your function to call
void Construct(Wrapper wrapper){
    instatiate(wrapper.build, gameobject.position + wrapper.position, gameobject.rotation);
}

//Send the message
SendMessage("Construct", new Wrapper(object, vector3));

Nope.

A lot of people get around it by using SendMessage with functions that require 2-4 int/float parameters and using a Vector2-4. Since you have 2 different types of parameters (Objects and Vectors), it would be best (probably the only way) to use GetComponent instead.