Raycast를 사용하여 오브젝트를 회전시키고 그 방향으로 이동하려고합니다. 그러나 내 물건이 회전하면 새로운 방향으로 움직이지 않습니다. 대신 움직이는 방향과 똑같은 방향으로 움직입니다. 왜 그것이 방향을 바꾸지 않는지 아는가? 공용 클래스 ControlCar : MonoBehaviour {Unity3D 오브젝트가 회전 할 때 움직이지 않는다
CharacterController controller;
public int Speed;
public int Raydir;
public int RotateSpeed;
public int FrontRay;
public int RayDist;
// Use this for initialization
void Start() {
controller = GetComponent<CharacterController>();
RayDist = 4;
FrontRay = 3;
RotateSpeed = 10;
}
// Update is called once per frame
void Update() {
Move();
HandleRay();
}
void Move(){
transform.position += Vector3.forward * Speed * Time.deltaTime;
}
void HandleRay(){
//Front Ray
Vector3 Front = transform.TransformDirection(0,0,1) * FrontRay;
if (Physics.Raycast (transform.position, Front, 10)) {
Debug.Log ("Front hit!");
}
//Front right
Vector3 FrontR = transform.TransformDirection(1,0,1) * RayDist;
if (Physics.Raycast (transform.position, FrontR, 10)) {
Debug.Log ("Right hit!");
transform.Rotate(new Vector3(0,-RotateSpeed * Time.deltaTime,0));
}
//Front Left
Vector3 FrontL = transform.TransformDirection(-1,0,1) * RayDist;
if (Physics.Raycast (transform.position, FrontL, 10)) {
Debug.Log ("Left hit!");
transform.Rotate(new Vector3(0,RotateSpeed * Time.deltaTime,0));
}
//DebugRay
Debug.DrawRay(transform.position, FrontL, Color.green);
Debug.DrawRay(transform.position, FrontR, Color.red);
Debug.DrawRay(transform.position, Front, Color.blue);
}
}
내 전체 프로젝트는 여기에서 볼 수 있습니다 : 사전에 https://www.dropbox.com/sh/d7yxhjg5humw3vo/AAD5IfBW8slRw8-AT072DsWea?dl=0
감사합니다!
RotateSpeed 및 FrontRay는 무엇으로 설정 되나요? – Formic
FrontRay = 3; \t \t RotateSpeed = 10; –