私は持っているgameobject charTransform = GameObject.FindGameObjectWithTag ("Character");
そして、私はコードで世界の境界を取得しています
rightHorizontalBound = camera.ViewportToWorldPoint (new Vector3 (1,0, camera.nearClipPlane)).x;
質問: と同じタイプのゲーム オブジェクトを取得するにはどうすればよいrightHorizontalBound
ですか? だから私はそれらの値を比較できますか?
は としての WorldPointif(charTransform1.position.x >= rightHorizontalBound)
ではないため、すべての悪いことが で発生します。charTransform1.position.x
rightHorizontalBound
私が比較する機能が必要なので、キャラクターは右の境界線を通過できません。ここにコードがあります
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);
}
}