Je débute sur Unity avec un petit projet que j'aimerais réaliser.
J'ai 2 cubes. L'un d'entre eux se déplace lorsque je clique sur un point a la souris, il va au point.
J'aimerais que le cube s’arrête lorsque il entre en collision avec le second cube. J'ai utilisé la fonction OnCollisionEnter, mais ça ne passe pas.
Je vous montre mon code , j'ai suivi un tuto pour le déplacement au click :
Code : Tout sélectionner
using UnityEngine;
using System.Collections;
public class characterMover : MonoBehaviour {
private float speed = 10f;
private Vector3 targetPosition;
private bool isMoving;
const int LEFT_MOUSE_BUTTON = 0;
// Use this for initialization
void Start () {
targetPosition = transform.position;
isMoving = false;
}
// Update is called once per frame
void Update () {
if (Input.GetMouseButton(LEFT_MOUSE_BUTTON))
SetTargetPosition();
if (isMoving)
MovePlayer();
}
void SetTargetPosition()
{
Plane plane = new Plane(Vector3.up, transform.position);
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
float point = 0f;
if (plane.Raycast(ray, out point))
targetPosition = ray.GetPoint(point);
isMoving = true;
}
void MovePlayer()
{
transform.LookAt(targetPosition);
transform.position = Vector3.MoveTowards(transform.position, targetPosition, speed * Time.deltaTime);
if (transform.position == targetPosition)
isMoving = false;
}
void OnCollisionEnter(Collision col)
{
targetPosition = transform.position;
}
}