現状
ステージ上から落ちないのを優先したいがオブジェクトを避けるのを優先してしまいステージから落ちてしまう。
実現したいこと
ぶつかってもいいのでできるだけステージから落ちないようにしたい。
該当コード
CPURay
1public class CPURay : MonoBehaviour 2{ 3 4 private void Start() 5 { 6 7 } 8 9 void Update() 10 { 11 transform.rotation = Quaternion.Euler(0, 0, 0); 12 13 RaycastHit hit; 14 Ray ray; 15 RaycastHit hitr; 16 Ray rayright; 17 RaycastHit hitl; 18 Ray rayleft; 19 RaycastHit hitr2; 20 Ray rayright2; 21 RaycastHit hitl2; 22 Ray rayleft2; 23 24 int distance = 50; 25 26 ray = new Ray(transform.position, new Vector3(0,-0.2f,1)); 27 rayright = new Ray(transform.position, new Vector3(0.4f, -0.2f, 1)); 28 rayleft = new Ray(transform.position, new Vector3(-0.4f, -0.2f, 1)); 29 rayright2 = new Ray(transform.position, new Vector3(0.6f, -0.2f, 1)); 30 rayleft2 = new Ray(transform.position, new Vector3(-0.6f, -0.2f, 1)); 31 32 if (Physics.Raycast(ray, out hit, distance)) 33 { 34 35 } 36 if(Physics.Raycast(rayright, out hitr, distance)) 37 { 38 39 } 40 if(Physics.Raycast(rayleft, out hitl, distance)) 41 { 42 43 } 44 if (Physics.Raycast(rayright2, out hitr2, distance)) 45 { 46 47 } 48 if (Physics.Raycast(rayleft2, out hitl2, distance)) 49 { 50 51 } 52 53 54 if (hit.collider != null && hitr.collider != null && hitl.collider != null) 55 { 56 CPU.x = 0; 57 Debug.Log(CPU.x); 58 } 59 else if (hit.collider != null && hitr.collider != null) 60 { 61 CPU.x = 1; 62 Debug.Log(CPU.x); 63 } 64 else if (hit.collider != null && hitl.collider != null) 65 { 66 CPU.x = -1; 67 Debug.Log(CPU.x); 68 } 69 70 else if (hit.collider.CompareTag("Impossible")|| hitr.collider.CompareTag("Impossible")|| hitl.collider.CompareTag("Impossible")) 71 { 72 if (hit.collider.CompareTag("Impossible")) 73 { 74 CPU.x = 1; 75 Debug.Log(CPU.x); 76 } 77 else if (hit.collider.CompareTag("Impossible") && hitl2.collider != null || hitl.collider != null) 78 { 79 CPU.x = -1; 80 Debug.Log(CPU.x); 81 } 82 else if (hit.collider.CompareTag("Impossible") && hitr2.collider != null || hitr.collider != null) 83 { 84 CPU.x = 1; 85 Debug.Log(CPU.x); 86 } 87 } 88 89 90 91 Debug.DrawLine(ray.origin, hit.point, Color.blue); 92 Debug.DrawLine(rayright.origin, hitr.point, Color.red); 93 Debug.DrawLine(rayleft.origin, hitl.point, Color.red); 94 Debug.DrawLine(rayright2.origin, hitr2.point, Color.black); 95 Debug.DrawLine(rayleft2.origin, hitl2.point, Color.black); 96 } 97}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。