Skip to content

Commit

Permalink
Merge pull request #223 from otaconwow/Bird
Browse files Browse the repository at this point in the history
Issue #196
  • Loading branch information
StefanWerW committed May 15, 2016
2 parents 4c7ed77 + b69ba4b commit 2d2111a
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 17 deletions.
39 changes: 39 additions & 0 deletions Assets/Editor/BirdEditor.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
using UnityEngine;
using System.Collections;
using UnityEditor;

[CustomEditor(typeof(MoveAtoB))]
public class BirdEditor : Editor
{
SerializedProperty pointA_SP;
SerializedProperty pointB_SP;

public void OnEnable()
{
pointA_SP = serializedObject.FindProperty("pointA");
pointB_SP = serializedObject.FindProperty("pointB");
}
public void OnSceneGUI()
{
serializedObject.Update();
MoveAtoB platform = (MoveAtoB)target;
Vector3 pointA = platform.transform.TransformPoint(pointA_SP.vector3Value);
Handles.color = Color.blue;

Vector3 pointB = platform.transform.TransformPoint(pointB_SP.vector3Value);

Handles.color = Color.blue;
pointB = Handles.FreeMoveHandle(
pointB,
Quaternion.identity,
HandleUtility.GetHandleSize(pointB) * 0.08f,
Vector3.one * 0.1f,
Handles.DotCap);

pointB_SP.vector3Value = platform.transform.InverseTransformPoint(pointB);
Handles.DrawDottedLine(pointA, pointB, 20f);

serializedObject.ApplyModifiedProperties();
}
}

12 changes: 12 additions & 0 deletions Assets/Editor/BirdEditor.cs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

45 changes: 28 additions & 17 deletions Assets/Scripts/Elements/MoveAtoB.cs
Original file line number Diff line number Diff line change
@@ -1,22 +1,33 @@
using UnityEngine;
using UnityEditor;
using System.Collections;

public class MoveAtoB : MonoBehaviour {
public class MoveAtoB : MonoBehaviour
{
[SerializeField]
private Vector3 pointA;
[SerializeField]
private Vector3 pointB = new Vector3(2, 0, 0);
[Range(0.0f, 20.0f)]
public float speed = 2f;
void Awake()
{
pointA = new Vector3(transform.position.x, transform.position.y, transform.position.z);
pointB = transform.TransformPoint(pointB);
StartCoroutine(Move());
}

private IEnumerator Move()
{
while(Vector3.Distance(transform.position, pointB)!=0){
float step = speed * Time.deltaTime;
transform.position = Vector3.MoveTowards(transform.position, pointB, step);
yield return null;
}

private Vector3 pointA;
[SerializeField]private Vector3 pointB = new Vector3(2,0,0);

[Range(0.0f, 20.0f)]public float speed = 2f;

void Awake () {
pointA = new Vector3(transform.position.x, transform.position.y, transform.position.z);
pointB = transform.TransformPoint(pointB);
}

void Update() {
// based on the speed set movement step
float step = speed * Time.deltaTime;
// move GameObject from current position (GameObject own position or if defined point A position) to point B
transform.position = Vector3.MoveTowards(transform.position, pointB, step);
}
print("Destination reached");
yield return new WaitForSeconds(3f);
print("Coroutine finished");
}
}

0 comments on commit 2d2111a

Please sign in to comment.