- Home /
This post has been wikified, any user with enough reputation can edit it.
Question by
PedroPat · Apr 21, 2015 at 02:20 PM ·
2d gamecanvasrender texture
Problem to disable collision with canvas
Hello
I am taking the first steps in unity 5 with the development of a small 2D game of cars seen from top down.
I am using 2 Canvas to render 2 par of sprites that are roads. I have 2 types of roads with 2 sprites for each to make the loop and I want the roads to be rendered by each X score points.
The solution I m using is enable /disable cameras to make the transition between the loops, but I can t disable de collider2D component from first road.
There is a better way to make the transitions ? and how can I disable the collider when I go to the 2º loop road B?
Here is some of the c# code of my script:
if (scoreNum >=10){
camera.enabled = false;
camera2.enabled = true;
Physics2D.IgnoreCollision(player.GetComponentInChildren(), roadB1.GetComponentInChildren()); // Don t work!!
Physics2D.IgnoreCollision(player.GetComponentInChildren(), roadB2.GetComponentInChildren()); // Don t work!!
roadA1.rectTransform.Translate(moveDir * (velocity *20) * Time.deltaTime);
roadA2.rectTransform.Translate(moveDir * (velocity *20) * Time.deltaTime);
if(roadA1.rectTransform.anchoredPosition.y < -520){
roadA1.rectTransform.anchoredPosition = new Vector3(roadA1.rectTransform.anchoredPosition.x, roadA2.rectTransform.anchoredPosition.y + 520, 0);
}
if(roadA2.rectTransform.anchoredPosition.y < -520){
roadA2.rectTransform.anchoredPosition = new Vector3(roadA2.rectTransform.anchoredPosition.x, roadA1.rectTransform.anchoredPosition.y + 520, 0);
}
}
else {
roadB1.rectTransform.Translate(moveDir * (velocity *20) * Time.deltaTime);
roadB2.rectTransform.Translate(moveDir * (velocity *20) * Time.deltaTime);
if(roadB1.rectTransform.anchoredPosition.y < -520){
roadB1.rectTransform.anchoredPosition = new Vector3(roadB1.rectTransform.anchoredPosition.x, roadB2.rectTransform.anchoredPosition.y + 520, 0);
if(roadB2.rectTransform.anchoredPosition.y < -520){
roadB2.rectTransform.anchoredPosition = new Vector3(roadB2.rectTransform.anchoredPosition.x, roadB1.rectTransform.anchoredPosition.y + 520, 0);
}
}
Comment
Your answer
![](https://koobas.hobune.stream/wayback/20220613193621im_/https://answers.unity.com/themes/thub/images/avi.jpg)