Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using DG.Tweening;
- using MoreMountains.Tools;
- using UnityEngine;
- namespace JamiesCode.Scripts.AI {
- public class ShootingLineRendererDriver : MonoBehaviour {
- /// <summary>
- /// this needs some work like most things
- /// but its part way there I need to firm up the logic
- ///
- /// </summary>
- [SerializeField] LineRenderer lr;
- [SerializeField] GameObject playerObj;
- [SerializeField] GameObject GunLaserStart;
- [SerializeField] FieldOfView fov;
- [SerializeField] float UpdateInterval;
- [MMReadOnly][SerializeField]Vector3 lastPlayerPos;
- Vector3 currentPlayerPos;
- [MMReadOnly][SerializeField] bool tween = false;
- //[MMReadOnly]
- public bool runScript;
- void Start () {
- lr = GetComponent<LineRenderer> ();
- Invoke ("GetPlayerReference", 2.1f);
- savePlayerPos ();
- }
- // Update is called once per frame
- void Update () {
- if (runScript) {
- if (playerObj != null) {
- // Tween customVector to CurrentPlayerPos in UpdateInterval seconds
- if (tween) {
- Tween ();
- }
- formatPositions ();
- UpdateLineRenderer ();
- }
- } else {
- return;
- }
- }
- private void savePlayerPos () {
- lastPlayerPos = currentPlayerPos;
- tween = true;
- }
- private void UpdateLineRenderer () {
- lr.SetPosition (0, lastPlayerPos);
- lr.SetPosition (1, GunLaserStart.transform.position);
- }
- private void formatPositions () {
- currentPlayerPos = playerObj.transform.position;
- lastPlayerPos = new Vector3 (lastPlayerPos.x, lastPlayerPos.y, 0f);
- }
- private void Tween()
- {
- Debug.Log("Line should tween");
- DOTween.To(() => lastPlayerPos, x => lastPlayerPos = x, currentPlayerPos, UpdateInterval).OnUpdate(() => { }).onComplete = savePlayerPos;
- tween = false;
- }
- //this just gets the player you can ignore it if debugging.
- private void GetPlayerReference () {
- playerObj = fov.playerRef;
- }
- //Methods below aren't necesarry but are QOL(Quality Of Life)
- public void StartScript () {
- runScript = true;
- }
- public void StopScript () {
- runScript = false;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement