Commit 94d4bb6a authored by Chae Ho Shin's avatar Chae Ho Shin

primitive collision model(known bugs : nullref, no regards for object mass, no...

primitive collision model(known bugs : nullref, no regards for object mass, no rotational forces, etc.)
parent 9766618c
...@@ -20,6 +20,8 @@ public class FlatlandMovement : MonoBehaviour ...@@ -20,6 +20,8 @@ public class FlatlandMovement : MonoBehaviour
public Vector3 alpha = new Vector3(0.0f, 0.0f, 0.0f); // proper acceleration public Vector3 alpha = new Vector3(0.0f, 0.0f, 0.0f); // proper acceleration
public Vector3 v; public Vector3 v;
public Vector3 orientation; public Vector3 orientation;
Vector3 collisionforce;
protected Vector3 startScale;
public LevelManager levelManager; public LevelManager levelManager;
public double gamma = 1.0f; public double gamma = 1.0f;
...@@ -47,6 +49,7 @@ public class FlatlandMovement : MonoBehaviour ...@@ -47,6 +49,7 @@ public class FlatlandMovement : MonoBehaviour
protected void Start() protected void Start()
{ {
Physics.IgnoreLayerCollision(0, 1); Physics.IgnoreLayerCollision(0, 1);
startScale = theobject.transform.localScale;
} }
protected void FixedUpdate() protected void FixedUpdate()
...@@ -272,7 +275,12 @@ public class FlatlandMovement : MonoBehaviour ...@@ -272,7 +275,12 @@ public class FlatlandMovement : MonoBehaviour
/// <param name="collision"></param> /// <param name="collision"></param>
public virtual void OnCollisionEnterchild(Collision collision) public virtual void OnCollisionEnterchild(Collision collision)
{ {
Debug.Log("Collision! ~~~~~~~~~~~~~~~~" + theobject.transform.parent.name + "~~~~~~~~~~~~~~~~~~~~~~" + collision.transform.parent.name); var tmp = collision.GetContact(0).normal;
tmp = new Vector3(tmp.x, 0, tmp.z);
tmp = tmp.normalized;
tmp *= 100;
collisionforce = tmp;
alpha += collisionforce;
} }
/// <summary> /// <summary>
/// 나갔을때 호출 /// 나갔을때 호출
...@@ -280,6 +288,7 @@ public class FlatlandMovement : MonoBehaviour ...@@ -280,6 +288,7 @@ public class FlatlandMovement : MonoBehaviour
/// <param name="collision"></param> /// <param name="collision"></param>
public virtual void OnCollisionExitchild(Collision collision) public virtual void OnCollisionExitchild(Collision collision)
{ {
alpha -= collisionforce;
collisionforce = new Vector3(0, 0, 0);
} }
} }
...@@ -9,6 +9,7 @@ public class Planemovement : FlatlandMovement ...@@ -9,6 +9,7 @@ public class Planemovement : FlatlandMovement
public double starttime = 0.0f; public double starttime = 0.0f;
public Planemovement otherclock; public Planemovement otherclock;
void Start() void Start()
{ {
base.Start(); base.Start();
...@@ -134,6 +135,8 @@ public class Planemovement : FlatlandMovement ...@@ -134,6 +135,8 @@ public class Planemovement : FlatlandMovement
transform.rotation = Quaternion.LookRotation(newforward, vt); transform.rotation = Quaternion.LookRotation(newforward, vt);
theobject.transform.parent = transform; theobject.transform.parent = transform;
theobject.transform.localScale = startScale;
transform.localScale = new Vector3(1.0f, 1.0f, (float)gamma); // scale x'-axis scale (distance dilation) transform.localScale = new Vector3(1.0f, 1.0f, (float)gamma); // scale x'-axis scale (distance dilation)
......
...@@ -15,7 +15,6 @@ public class PlayerMovement : FlatlandMovement,IInteractor ...@@ -15,7 +15,6 @@ public class PlayerMovement : FlatlandMovement,IInteractor
private List<InteractiveObject> interactiveObjects; private List<InteractiveObject> interactiveObjects;
private Vector3 startScale;
private Vector3 backgroundStartScale; private Vector3 backgroundStartScale;
// Start is called before the first frame update // Start is called before the first frame update
...@@ -29,7 +28,6 @@ public class PlayerMovement : FlatlandMovement,IInteractor ...@@ -29,7 +28,6 @@ public class PlayerMovement : FlatlandMovement,IInteractor
time = 0.0f; time = 0.0f;
isinertial = true; isinertial = true;
alpha = new Vector3(0.0f, 0.0f, 0.0f); alpha = new Vector3(0.0f, 0.0f, 0.0f);
startScale = theobject.transform.localScale;
backgroundStartScale = background.transform.localScale; backgroundStartScale = background.transform.localScale;
interactiveObjects = new List<InteractiveObject>(); interactiveObjects = new List<InteractiveObject>();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment