Nous allons maintenant créer le script qui servira à contrôler le bateau avec le clavier afin de pouvoir se déplacer sur l’océan.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BoatCtrl : MonoBehaviour
{
public float speed = 3; // Vitesse bateau
float force; // Avant / arrière
float dir; // Gauche / droite
Rigidbody rb;
public int nbObj = 0;
private void Start()
{
rb = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
// Calcul force & direction
force = Mathf.SmoothStep(force, Input.GetAxis("Vertical"), Time.deltaTime * 10);
dir = Mathf.SmoothStep(dir, Input.GetAxis("Horizontal"), Time.deltaTime * 5);
// On applique la velicité au rigidbody pour avancer
Vector3 velocity = new Vector3(0, force * speed, 0);
rb.velocity = rb.transform.TransformDirection(velocity);
// On applique la rotation pour la direction
Vector3 angularVel = new Vector3(0, dir * speed/2 , 0);
rb.angularVelocity = angularVel;
}
// Gestion des collisions
private void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("obj"))
{
Destroy(other.gameObject);
nbObj++;
}
}
}