- Home /
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?
Answer by BalsamicVinegar · Jul 12, 2011 at 04:32 AM
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);
:D
Answer by vivek2012.du · Jul 12, 2011 at 05:13 AM
You can also refer this for your rayCast problem ..http://unity3dnotes.blogspot.com/2011/07/how-to-use-physicsraycast-in-your-game.html
Your answer
Follow this Question
Related Questions
Multiple Materials on Multiple Objects -runtime- 1 Answer
Loop through all materials in scene and change them 3 Answers
Material Changing at Run-Time on Static Batched Objects 1 Answer
How to Create enemy flash effect on Raycast hit 2 Answers
Mesh renderer - more than one material in submeshes 0 Answers