// Use this for initialization void Start() { InvokeRepeating("AddObject", 0.0f, 2.2f); GameObject thePlayer = GameObject.Find("player"); turtleController = thePlayer.GetComponent <TurtleController>(); }
void CastRay() { // Create ray cast from mouse input Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); Plane playerPlane = new Plane(Vector3.back, player.transform.position); // Set player float distance; // Creates a ray cast from player to mouse click if (playerPlane.Raycast(ray, out distance)) { Vector3 hitPt = ray.GetPoint(distance); Ray playerToClick = new Ray(player.transform.position, hitPt - player.transform.position); //RaycastHit2D hit = Physics2D.Raycast(playerToClick.origin, playerToClick.direction, pickUpRange, LayerMask); RaycastHit2D hit = Physics2D.Raycast(playerToClick.origin, playerToClick.direction, float.MaxValue, LayerMask); // Debug.DrawRay(playerToClick.origin, playerToClick.direction * 50, Color.yellow); if (hit) { Debug.Log(hit.collider.gameObject.name); //int collisionLayerMask = 1 << hit.collider.gameObject.layer; TurtleController turtleController = hit.collider.gameObject.GetComponent <TurtleController>(); FallingPlasticController fallingPlasticController = hit.collider.gameObject.GetComponent <FallingPlasticController>(); if (currentCoroutine != null) { StopCoroutine(currentCoroutine); } currentCoroutine = StartCoroutine(CheckIfNear(turtleController, fallingPlasticController)); } } }
IEnumerator Rescue(TurtleController turtleController) { yield return(new WaitForSeconds(rescuingAnimation.length)); enabled = true; GetComponent <Movement>().enabled = true; animator.SetBool("isRescuing", false); turtleController.isChoking = false; }
public void GenerateString(int weight) { l_system = new L_System(); controller = GetComponent <TurtleController>(); sentence = l_system.setUp(weight); for (int i = 0; i < itt; i++) { sentence = l_system.nextSentence(sentence); } }
IEnumerator CheckIfNear(TurtleController tc, FallingPlasticController pc) { if (tc) { yield return(new WaitUntil(() => Vector2.Distance(player.transform.position, tc.transform.position) <= pickUpRange)); if (tc.isChoking && tc.isAlive) { animator.SetBool("isRescuing", true); tc.plasticInContact.ShowOutline(true); // Show the outline similar to pickup StartCoroutine(Rescue(tc)); } } else if (pc) { yield return(new WaitUntil(() => Vector2.Distance(player.transform.position, pc.transform.position) <= pickUpRange)); animator.SetBool("isRescuing", true); rb.velocity = Vector3.zero; pc.PickUp(); StartCoroutine(PickupPlastic(pc)); } }
public void Generate(int _type, float size, int _numberOfSites, float _mainRoadWidth, float _sideRoadWidth) { lStreets = new List <GameObject>(); siteGen = GetComponent <SiteGenerator>(); vBuilder = GetComponent <VoronoiBuilder>(); Ground.transform.localScale = new Vector3(size, 0.01f, size); groundRad = size / 2f; numberOfSites = _numberOfSites; mainRoadWidth = _mainRoadWidth; sideRoadWidth = _sideRoadWidth; type = (GenerationType)_type; List <Vector2> sites = new List <Vector2>(); switch (type) { case GenerationType.Orgnic: sites = siteGen.GenerateRandom(new Vector2(Ground.transform.position.x, Ground.transform.position.z), groundRad, width, height, numberOfSites); break; case GenerationType.Circular: sites = siteGen.GenerateCircular(height, width, groundRad, new Vector2(Ground.transform.position.x, Ground.transform.position.z), 3, numberOfSites); break; case GenerationType.Grid: sites = siteGen.GenerateGrid(new Vector2(Ground.transform.position.x, Ground.transform.position.z), groundRad, 400, 400); break; default: break; } List <Edge> vEdges = vBuilder.GenerateVoronoi(sites, new Vector2(Ground.transform.position.x, Ground.transform.position.z), groundRad); int i = 0; for (i = 0; i < vEdges.Count; i++) { // check to see if the curent edge is entirely out of the worldbound if (CheckWholeEdge(vEdges[i])) { continue; } if (!CheckPositiontoWorldBounds(vEdges[i].start)) { Vector2[] inter = EdgeToCircleIntersection(vEdges[i]); float dis1 = Vector2.Distance(vEdges[i].start, inter[0]); float dis2 = Vector2.Distance(vEdges[i].start, inter[1]); if (dis1 < dis2) { vEdges[i].start = inter[0]; } else { vEdges[i].start = inter[1]; } } if (!CheckPositiontoWorldBounds(vEdges[i].end)) { Vector2[] inter = EdgeToCircleIntersection(vEdges[i]); float dis1 = Vector2.Distance(vEdges[i].start, inter[0]); float dis2 = Vector2.Distance(vEdges[i].start, inter[1]); if (dis1 < dis2) { vEdges[i].end = inter[0]; } else { vEdges[i].end = inter[1]; } } GameObject newMainRoad = Instantiate(mainRoadPF, new Vector3(vEdges[i].start.x, 0.1f, vEdges[i].start.y), Quaternion.identity); newMainRoad.GetComponent <MeshBuilderVoronoi>().GenerateMesh(vEdges[i].start, vEdges[i].end, mainRoadWidth); newMainRoad.transform.rotation = Quaternion.LookRotation(new Vector3(vEdges[i].ndir.x, 0, vEdges[i].ndir.y)); newMainRoad.name = vEdges[i].LR; newMainRoad.GetComponent <AttachPoints>().CreateAttachPoints(Vector3.Distance(vEdges[i].start, vEdges[i].end), 5); Vector2 midPoint = new Vector2((vEdges[i].start.x + vEdges[i].end.x) / 2, (vEdges[i].start.y + vEdges[i].end.y) / 2f); Vector2 rotation = Vector2.Perpendicular(vEdges[i].ndir); GameObject t = Instantiate(turtlePf, new Vector3(midPoint.x, 0.1f, midPoint.y), Quaternion.LookRotation(new Vector3(rotation.x, 0, rotation.y))); TurtleController tc = t.GetComponent <TurtleController>(); tc.streeWidth = sideRoadWidth; tc.startStreet = newMainRoad; if (type == GenerationType.Circular) { float disToMid = Vector2.Distance(midPoint, Ground.transform.position); float p = disToMid * 100 / groundRad; int itt = 0; if (p < 33.3f) { itt = 3; } else if (p < 66.6f) { itt = 2; } else { itt = 1; } tc.Generate(itt); } else { tc.Generate(1); } } }
void Start() { turtleController = GetComponent<TurtleController>(); nearbyBarrierDistanceThreshold = 75f; barrierController = GetComponent<BarrierController>(); }
void Awake() { player = GameObject.FindWithTag("Player"); turtleController = player.GetComponent<TurtleController>(); playerStateController = player.GetComponent<TurtleStateController>(); playerMovementController = player.GetComponent<TurtleMovementController>(); waterSurfaceLevel = playerStateController.WaterSurfaceLevel(); }
void Start() { deprecatedPlayerController = GameObject.FindWithTag("Player").GetComponent<TurtleController>(); }
void Start() { player = GameObject.FindWithTag("Player"); turtleController = player.GetComponent<TurtleController>(); forwardSpeed = 16f; shoalingSpeed = 7f; burstSpeed = 25f; followingSpeed = 16.1f; if (rushingSpeed == 0) rushingSpeed = 35f; if (fastRotationSpeed == 0) fastRotationSpeed = 75f; obstacleAvoidanceRotationSpeed = 1.5f; followingRotationSpeed = 1.6f; shoalingRotationSpeed = 1.8f; if (rushRotationSpeed == 0) rushRotationSpeed = 5f; quickChangeOfDirectionDistance = .75f; patienceLeft = patienceSeed; particleEmitter = GetComponent<ParticleSystem>(); InvokeRepeating("checkIfShouldStartDoingCalculations", Random.Range(3,15), 5); }
void Start() { parent = GetComponentInParent <TurtleController>(); }