Skip to content

Instantly share code, notes, and snippets.

@marios2019
Created March 21, 2018 16:21
Show Gist options
  • Save marios2019/a235bf7d265c4ee8d47c59833528de4a to your computer and use it in GitHub Desktop.
Save marios2019/a235bf7d265c4ee8d47c59833528de4a to your computer and use it in GitHub Desktop.
using UnityEngine;
using System.Collections;
public class SmartWall : MonoBehaviour {
private Vector3 agent;
private bool coroutineFlag = true, moveTargetFlag = true;
private Vector3 initialPosition, targetPosition;
// Use this for initialization
void Start () {
initialPosition = transform.position;
targetPosition = GameObject.Find("MoveTarget").transform.position;
}
// Update is called once per frame
void Update () {
agent = GameObject.Find("Agent").transform.position;
if ((Vector3.Distance(transform.position, agent) < 9f) && coroutineFlag && moveTargetFlag)
{
moveTargetFlag = false;
StartCoroutine(MoveWall(initialPosition, targetPosition));
}
if (Input.GetKey(KeyCode.R) && coroutineFlag && !moveTargetFlag)
{
moveTargetFlag = true;
transform.position = initialPosition;
}
}
IEnumerator MoveWall(Vector3 start, Vector3 target)
{
coroutineFlag = false;
float u = 0f;
while(u <= 1f)
{
transform.position = Vector3.Lerp(start, target, u);
u += 0.05f;
yield return null;
}
coroutineFlag = true;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment