Advertisement
Guest User

Untitled

a guest
Dec 1st, 2015
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.99 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3.  
  4. public class Water : MonoBehaviour {
  5.  
  6.     public GameObject ocean;
  7.     bool tideRising;
  8.     Vector3 tideHighest;
  9.     Vector3 tideLowest;
  10.     float dayDuration;
  11.     float outWave;
  12.     float inWave;
  13.     float amountRequired;
  14.  
  15.     private float startTime;
  16.     private float journeyLength;
  17.  
  18.     // Use this for initialization
  19.     void Start () {
  20.         ocean = this.gameObject;
  21.         tideHighest = ocean.transform.position;
  22.         tideLowest = new Vector3(tideHighest.x, tideHighest.y - 1, tideHighest.z);
  23.         dayDuration = 120f;
  24.         outWave = 2f;
  25.         inWave = 1.5f;
  26.         amountRequired = Mathf.Floor ((dayDuration / 2) / (outWave + inWave));
  27.         tideRising = false;
  28.  
  29.         startTime = Time.time;
  30.         journeyLength = Vector3.Distance(ocean.transform.position, tideLowest);
  31.     }
  32.  
  33.  
  34.  
  35.     void tideGoesOut() {
  36.         float distCovered = (Time.time - startTime) * outWave;
  37.         float fracJourney = distCovered / journeyLength;
  38.         ocean.transform.position = Vector3.Lerp (ocean.transform.position, tideLowest, fracJourney);
  39.         if(ocean.transform.position.y <= tideLowest.y){
  40.             tideRising = true;
  41.             startTime = Time.time;
  42.             journeyLength = Vector3.Distance(ocean.transform.position, tideHighest);
  43.             //ocean.transform.position = tideLowest;
  44.         }
  45.     }
  46.  
  47.     void tideComesIn() {
  48.         float distCovered = (Time.time - startTime) * inWave;
  49.         float fracJourney = distCovered / journeyLength;
  50.         ocean.transform.position = Vector3.Lerp (ocean.transform.position, tideHighest, fracJourney);
  51.         if (ocean.transform.position.y >= tideHighest.y) {
  52.             tideRising = false;
  53.             startTime = Time.time;
  54.             journeyLength = Vector3.Distance(ocean.transform.position, tideLowest);
  55.             //ocean.transform.position = tideHighest;
  56.         }
  57.     }
  58.    
  59.     // Update is called once per frame
  60.     void Update () {
  61.             if (tideRising){
  62.                 tideComesIn();
  63.             } else {
  64.                 tideGoesOut();
  65.             }
  66.  
  67.         Debug.Log ("Highest: " + tideHighest);
  68.         Debug.Log ("Lowest: " + tideLowest);
  69.         Debug.Log ("Current Position: " + ocean.transform.position);
  70.         Debug.Log (tideRising);
  71.     }
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement