1

私は持っているgameobject charTransform = GameObject.FindGameObjectWithTag ("Character");

そして、私はコードで世界の境界を取得しています rightHorizontalBound = camera.ViewportToWorldPoint (new Vector3 (1,0, camera.nearClipPlane)).x;

質問: と同じタイプのゲーム オブジェクトを取得するにはどうすればよいrightHorizontalBoundですか? だから私はそれらの値を比較できますか?

は としての WorldPointif(charTransform1.position.x >= rightHorizontalBound)ではないため、すべての悪いことが で発生します。charTransform1.position.xrightHorizontalBound

私が比較する機能が必要なので、キャラクターは右の境界線を通過できません。ここにコードがあります

using UnityEngine;
using System.Collections;

public class Gameplay : MonoBehaviour 
{

 float leftHorizontalBound;
 float rightHorizontalBound;

 public Transform charTransform1;

 void Start () 
 {
  charTransform1 = GameObject.FindGameObjectWithTag ("Character").transform;
  leftHorizontalBound = camera.ViewportToWorldPoint (new Vector3 (0,0, camera.nearClipPlane)).x;
  rightHorizontalBound = camera.ViewportToWorldPoint (new Vector3 (1,0, camera.nearClipPlane)).x;
  //
 }


 void Update ()
 {
  MovementRight ();
  MovementLeft ();


  if (charTransform1.position.x <= leftHorizontalBound) {
     charTransform1.position = new Vector3 (leftHorizontalBound + 1f, charTransform1.position.y, charTransform1.position.z);
     return;
  } 

  if(charTransform1.position.x >= rightHorizontalBound)
  {
   charTransform1.position = new Vector3(rightHorizontalBound - 1f,charTransform1.position.y,charTransform1.position.z);
   return;
  }

 }

 void MovementRight()
 {
  charTransform1.transform.Translate (Vector2.right  300f  Time.deltaTime);
 }
 void MovementLeft()
 {
  charTransform1.transform.Translate (Vector3.left  00f  Time.deltaTime);
 }
}
4

0 に答える 0