|
오브젝트를 생성한뒤 소스코드를 붙이고 아래의 코드를 실행하면 됩니다.
Player.cs
- using UnityEngine;
- using System.Collections;
- [RequireComponent (typeof(PlayerController))]
- public class Player : MonoBehaviour
- {
- public float moveSpeed = 5;
- Camera viewCamera;
- PlayerController controller;
- void Start ()
- {
- controller = GetComponent();
- viewCamera = Camera.main;
- }
- void Update ()
- {
- Vector3 moveInput = new Vector3(Input.GetAxis("Horizontal"), 0,
- Input.GetAxis("Vertical"));
- Vector3 moveVelocity = moveInput.normalized * moveSpeed;
- controller.Move(moveVelocity);
- Ray ray = viewCamera.ScreenPointToRay(Input.mousePosition);
- Plane groundPlane = new Plane(Vector3.up, Vector3.zero);
- float rayDistance;
- if(groundPlane.Raycast(ray,out rayDistance))
- {
- Vector3 point = ray.GetPoint(rayDistance);
- //Debug.DrawLine(ray.origin, point, Color.red);
- controller.LookAt(point);
- }
- }
- }
ViewCamera에 카메라 할당하기
23줄 : Ray ray = viewCamera.ScreenPointToRay(Input.mousePosition);
통해서 위치를 반환합니다.
플레인을 수직으로 통과하는 법선백터를 생성합니다.
25줄 :
27줄 : if(groundPlane.Raycast(ray,out rayDistance))
ouy 변수를 참조로 전달한다.
PlayerController.cs
- using UnityEngine;
- using System.Collections;
- [RequireComponent (typeof (Rigidbody))]
- public class PlayerController : MonoBehaviour
- {
- Vector3 velocity;
- Rigidbody myRigidbody;
- void Start ()
- {
- myRigidbody = GetComponent();
- }
- public void Move(Vector3 _velocity)
- {
- velocity = _velocity;
- }
- public void LookAt(Vector3 lookPoint)
- {
- Vector3 heightCorrectedPoint = new Vector3(lookPoint.x,
- transform.position.y, lookPoint.z);
- transform.LookAt(heightCorrectedPoint); // 바라보게 하는 것
- }
- public void FixedUpdate()
- {
- myRigidbody.MovePosition(myRigidbody.position + velocity *
- Time.fixedDeltaTime);
- }
- }
Ray gazerRay = new Ray(transform.position, transform.forward);
_endPoint = gazerRay.GetPoint(100f);
전방 100f 거리의 위치를 가져옴.
'응용프로그램 > 유니티(Unity)' 카테고리의 다른 글
Unity - CapsuleCollider 사이의 거리알아보기. (0) | 2016.11.13 |
---|---|
유니티 DB 사용하기 (0) | 2016.11.13 |
Unity - 3D게임만들기(매테리얼 색 입히기) (0) | 2016.10.02 |
Unity - 이동 및 회전 (0) | 2016.10.02 |
Unity - 3D게임 공부자료 모음 (0) | 2016.10.02 |