Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using System.Collections;
- [RequireComponent (typeof(CharacterController))]
- public class JasioController : MonoBehaviour
- {
- public Animatio animatio;
- public float moveSpeed, gravity, flySpeed;
- private GameObject player;
- private CharacterController characterController;
- private float flyTempSpeed, flyTempTime;
- private Vector3 direction;
- private bool isFlying;
- public float speed = 5.0f;
- void Start ()
- {
- player = GameObject.FindGameObjectWithTag ("Player");
- characterController = player.GetComponent<CharacterController> ();
- isFlying = false;
- flyTempSpeed = 0;
- }
- // Update is called once per frame
- void Update ()
- {
- }
- // void OnMouseDown ()
- // {
- // //hero.rigidbody.velocity = new Vector3 ( hero.transform.position.x, hero.transform.position.y,hero.transform.position.z+20);
- // if (i == 0) {
- // StartCoroutine (doMoveToPoint (GameObject.FindGameObjectWithTag ("Jablko")));
- // i++;
- // } else
- // StartCoroutine (doMoveToPoint (GameObject.FindGameObjectWithTag ("Kompostownik")));
- // }
- // void OnMouseDown ()
- // {
- // //hero.rigidbody.velocity = new Vector3 ( hero.transform.position.x, hero.transform.position.y,hero.transform.position.z+20);
- //
- // StartCoroutine (doMoveToPoint (GameObject.FindGameObjectWithTag ("Respawn")));
- //
- // }
- private void move (Vector3 targetPoint)
- {
- if (!isFlying) {
- direction = new Vector3 (0, 0, 0);
- direction += targetPoint * Time.deltaTime;
- }
- if (characterController.isGrounded && isFlying) {
- flyTempTime = 0;
- isFlying = false;
- }
- if (!characterController.isGrounded) {
- flyTempSpeed -= flyTempTime / gravity;
- flyTempTime += Time.deltaTime;
- }
- direction.y = flyTempSpeed * Time.deltaTime;
- Vector3 ldirection = transform.TransformDirection (direction );
- characterController.Move (ldirection);
- }
- public IEnumerator doMoveToPoint (GameObject targetObject)
- {
- JasioManager.Busy = true;
- animatio.run ();
- GameObject.FindGameObjectWithTag ("Model").transform.LookAt (targetObject.transform.position);
- //player.transform.LookAt (targetObject.transform.position);
- yield return StartCoroutine (MoveObject (player.transform, player.transform.position, targetObject.transform.position, 9.0f));
- animatio.rest ();
- JasioManager.Busy = false;
- print ("Statyczna" + JasioManager.Busy);
- }
- IEnumerator MoveObject (Transform thisTransform, Vector3 startPos, Vector3 endPos, float time)
- {
- float i = 0.0f;
- float rate = 1.0f / time;
- while (i < 1.0f) {
- i += Time.deltaTime * rate;
- if (Vector3.Distance (player.transform.position, endPos) < 2) {
- break;
- }
- if (!isFlying) {
- direction = new Vector3 (0, 0, 0);
- direction += (endPos - startPos) * Time.deltaTime;
- }
- if (characterController.isGrounded && isFlying) {
- flyTempTime = 0;
- isFlying = false;
- }
- if (!characterController.isGrounded) {
- flyTempSpeed -= flyTempTime / gravity;
- flyTempTime += Time.deltaTime;
- }
- direction.y = flyTempSpeed * Time.deltaTime;
- Vector3 ldirection = transform.TransformDirection (direction);
- characterController.Move (ldirection);
- //Time.timeScale = 0.1f;
- yield return null;
- }
- yield return null;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement