// Update is called once per frame void Update() { if (entity.CurrentBehaviorTypeProperty != type) { ((LineRenderer)lines [0]).enabled = false; return; } if (Pause) { return; } if (CheckNonant() == destNonant) { showLines = false; entity.EndBehavior(); } if (showLines) { ((LineRenderer)lines [0]).enabled = true; } else { ((LineRenderer)lines [0]).enabled = false; } Vector3 offset = transform.position - destination; offset = new Vector3(offset.x, 0.0f, offset.z); Vector3 normalizedOffset = Vector3.Normalize(offset); SurfaceContactType contactType = entity.ContactType; if ((contactType == SurfaceContactType.Point) || (contactType == SurfaceContactType.Edge)) { xRot -= (speed * Time.deltaTime * 200.0f); transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(normalizedOffset) * Quaternion.Euler(new Vector3(xRot, 0.0f, 0.0f)), Time.deltaTime * speed * 200.0f); } if (sphereCollider != null) { transform.position = new Vector3(transform.position.x - normalizedOffset.x * sphereCollider.radius * Time.deltaTime * speed, transform.position.y, transform.position.z - normalizedOffset.z * sphereCollider.radius * Time.deltaTime * speed); } else { transform.position = new Vector3(transform.position.x - normalizedOffset.x * 0.5f * Time.deltaTime * speed, transform.position.y, transform.position.z - normalizedOffset.z * 0.5f * Time.deltaTime * speed); } }
// Update is called once per frame void Update() { if (entity.CurrentBehaviorTypeProperty != type) { return; } if (Pause) { return; } Vector3 offset = transform.position - destination; offset = new Vector3(offset.x, 0.0f, offset.z); Vector3 normalizedOffset = Vector3.Normalize(offset); if (offset.magnitude < 0.1f) { entity.EndBehavior(); } SurfaceContactType contactType = entity.ContactType; if ((contactType == SurfaceContactType.Point) || (contactType == SurfaceContactType.Edge)) { xRot -= (speed * Time.deltaTime * 200.0f); transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(normalizedOffset) * Quaternion.Euler(new Vector3(xRot, 0.0f, 0.0f)), Time.deltaTime * speed * 200.0f); } if (sphereCollider != null) { transform.position = new Vector3(transform.position.x - normalizedOffset.x * sphereCollider.radius * Time.deltaTime * speed, transform.position.y, transform.position.z - normalizedOffset.z * sphereCollider.radius * Time.deltaTime * speed); } else { transform.position = new Vector3(transform.position.x - normalizedOffset.x * 0.5f * Time.deltaTime * speed, transform.position.y, transform.position.z - normalizedOffset.z * 0.5f * Time.deltaTime * speed); } }