나는 위아래로 움직이는 표적을 가지고 있지만, 특정 y 축 범위로 수직 운동을 제한하는 방법을 모르겠습니다. 어떤 조언을 주셔서 감사합니다.Unity3D - y 축 범위 내에서 연속적으로 위아래로 움직이는 물체
using UnityEngine;
using System.Collections;
public class TargetMovementVertical : MonoBehaviour
{
public int maxSpeed;
private Vector3 startPosition;
// Use this for initialization
void Start()
{
maxSpeed = 3;
startPosition = transform.position;
}
// Update is called once per frame
void Update()
{
MoveVertical();
}
void MoveVertical()
{
transform.position = new Vector3(transform.position.x, startPosition.y + Mathf.Sin(Time.time * maxSpeed), transform.position.z);
if(transform.position.y > 1.0f)
{
transform.position = new Vector3(transform.position.x, transform.position.y, transform.position.z);
}
else if(transform.position.y < -1.0f)
{
transform.position = new Vector3(transform.position.x, transform.position.y, transform.position.z);
}
}
}
미안하지만, 내가 이미 장면에있는 물체를 가지고 있으며, 이미 그것이있는 곳을 기준으로 위아래로 움직이려하고 있습니다. 둘 다 시도했지만 여전히 제대로 작동하지 않습니다. 그것은 심지어 y 축을 위아래로 더 멀리 점프하게 만들었습니다. – khmer2040
난 그냥 내 오래된 솔루션을 테스트하고 문제를 발견, 나는 우리가 오래된 y 값을 추가해서는 안된다고 생각, 나는 그것을 startPosition.y로 바꿨습니다. 내 업데이트 된 솔루션을 확인하십시오. –
나는 일하게되었지만, 당신의 도움에 너무 감사드립니다. 정말 고맙습니다. :) – khmer2040