Getting/setting texture offsets during raycast

Hi,
I’m trying to get and modify the texture offset of an object picked by a raycast.
Here is what i’m doing so far.

MeshRenderer m_r = pickedObject.collider.gameObject.GetComponent("Mesh Renderer") as MeshRenderer; 

Vector2 offset = m_r.material.GetTextureOffset("_MainTex");

m_r.material.SetTextureOffset("_MainTex", new Vector2(offset.x + diff, offset.y));

pickedObject is the object found by the raycast and this block of code is only called if I find the correct object in the scene.

The difficulty I’m having here is that I can’t seem to gather the texture offset or modify it, I get an exception “NullReferenceException: Object reference not set to an instance of an object” So the code cannot find the texture based off “_MainTex”.

Finally, I have tried finding by using materials[0] rather than material but I get the same error.

Can someone help?

Actually, the solution is:

Vector2 offset = pickedObject.collider.gameObject.renderer.material.mainTextureOffset;
pickedObject.collider.gameObject.renderer.material.mainTextureOffset = new Vector2(offset.x + diff, offset.y);

:smiley:

You can also refer this for your rayCast problem …Unity3D Notes: How to use Physics.Raycast in your game