diff --git a/unity_Project/Assets/Scripts/fence.cs b/unity_Project/Assets/Scripts/fence.cs new file mode 100644 index 0000000..c368ec5 --- /dev/null +++ b/unity_Project/Assets/Scripts/fence.cs @@ -0,0 +1,24 @@ +using UnityEngine; +using System.Collections; + +public class fence : MonoBehaviour { + + private Rigidbody rigidbody; + + // Use this for initialization + void Start () { + + rigidbody = GetComponent (); + + } + + // Update is called once per frame + void Update () { + + } + + void OnCollisionEnter(Collision collision) { + if (collision.transform.tag == "moveable") + rigidbody.isKinematic = false; + } +} diff --git a/unity_Project/Assets/Scripts/fence.cs.meta b/unity_Project/Assets/Scripts/fence.cs.meta new file mode 100644 index 0000000..f0845b9 --- /dev/null +++ b/unity_Project/Assets/Scripts/fence.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7e92a1181b412274f95aac6cac6d6b46 +timeCreated: 1441940253 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity_Project/Assets/Scripts/magnetGun.cs b/unity_Project/Assets/Scripts/magnetGun.cs index a1a2c74..ceb6a4a 100644 --- a/unity_Project/Assets/Scripts/magnetGun.cs +++ b/unity_Project/Assets/Scripts/magnetGun.cs @@ -142,7 +142,7 @@ public class magnetGun : MonoBehaviour { if (item.tag == "moveable" && Input.GetButtonDown("Quick Push")){ Vector3 direction = (transform.position - item.transform.position).normalized; - item.attachedRigidbody.AddForce(direction * impulsePower * maxPullSpeed,ForceMode.Impulse); + item.attachedRigidbody.AddForce(direction * impulsePower * maxPullSpeed* item.attachedRigidbody.mass,ForceMode.Impulse ); } } } @@ -185,7 +185,7 @@ public class magnetGun : MonoBehaviour { maxPull = camera.transform.position + (camera.transform.rotation * Vector3.forward); - if (Vector3.Distance (gravityWell.transform.position, camera.transform.position) > minDistance || maxPullSpeed<1) { + if ((Vector3.Distance (gravityWell.transform.position, camera.transform.position) > minDistance && Vector3.Distance (gravityWell.transform.position, camera.transform.position) < magnetRange) || maxPullSpeed<1) { gravityWell.transform.position = Vector3.MoveTowards (gravityWell.transform.position, maxPull, step); if ((Vector3.Distance (gravityWell.transform.position, camera.transform.position) > magnetRange) && !topScreen) @@ -219,7 +219,7 @@ public class magnetGun : MonoBehaviour { public void cameraRotateTest(Collider item){ if (item != null) { - Debug.Log ("distance test: " + Vector3.Distance (gravityWell.transform.position, camera.transform.position)); + //Debug.Log ("distance test: " + Vector3.Distance (gravityWell.transform.position, camera.transform.position)); if (Vector3.Distance (gravityWell.transform.position, camera.transform.position) <= minDistance) { playerController.cameraSpeedX = 250.0f; playerController.cameraSpeedY = 120.0f; diff --git a/unity_Project/Assets/Scripts/thirdPersonController.cs b/unity_Project/Assets/Scripts/thirdPersonController.cs index ab20b73..77443e8 100644 --- a/unity_Project/Assets/Scripts/thirdPersonController.cs +++ b/unity_Project/Assets/Scripts/thirdPersonController.cs @@ -45,24 +45,36 @@ public class thirdPersonController : MonoBehaviour { } void FixedUpdate(){ - if (Physics.Raycast (transform.position, -Vector3.up, 1.3f)) { + + RaycastHit hit; + + Ray ray = new Ray(transform.position, -Vector3.up); + + + if (Physics.Raycast (ray, out hit, 1.3f)) { grounded = true; + if (hit.collider.tag == "moveable") + matchVelocity(hit.collider); + } else { grounded = false; } if (active) { - applyMovement(); + applyMovement (); transform.rotation = Quaternion.Euler (new Vector3 (0.0f, camera.transform.rotation.eulerAngles.y, 0.0f)); - applyJump(jumpHeight); applyGrip(); + applyJump (jumpHeight); + } + + } - } + //} // Update is called once per frame void LateUpdate () { @@ -99,6 +111,20 @@ public class thirdPersonController : MonoBehaviour { } + private void matchVelocity(Collider target){ + + Debug.Log ("matching velocity"); + + //Vector3 velocity = rigidbody.velocity; + //velocity = target.attachedRigidbody.velocity; + + //rigidbody.velocity = velocity; + + //transform.parent = target.transform; + //rigidbody.isKinematic = true; + } + + private void applyGrip(){ float localVelX = transform.InverseTransformDirection (rigidbody.velocity).x; float localVelZ = transform.InverseTransformDirection (rigidbody.velocity).z; diff --git a/unity_Project/Assets/Terrain/New Terrain.asset b/unity_Project/Assets/Terrain/New Terrain.asset index ddca170..b718593 100644 Binary files a/unity_Project/Assets/Terrain/New Terrain.asset and b/unity_Project/Assets/Terrain/New Terrain.asset differ diff --git a/unity_Project/Assets/_Scenes/MainLevel.unity b/unity_Project/Assets/_Scenes/MainLevel.unity index c7db2cb..f4a2da2 100644 Binary files a/unity_Project/Assets/_Scenes/MainLevel.unity and b/unity_Project/Assets/_Scenes/MainLevel.unity differ diff --git a/unity_Project/Assets/prefabs/Fence.prefab b/unity_Project/Assets/prefabs/Fence.prefab index d706d8b..31b7ee7 100644 Binary files a/unity_Project/Assets/prefabs/Fence.prefab and b/unity_Project/Assets/prefabs/Fence.prefab differ diff --git a/unity_Project/Assets/prefabs/wall_cube.prefab b/unity_Project/Assets/prefabs/wall_cube.prefab index 4b318b0..f38b10e 100644 Binary files a/unity_Project/Assets/prefabs/wall_cube.prefab and b/unity_Project/Assets/prefabs/wall_cube.prefab differ diff --git a/unity_Project/ProjectSettings/InputManager.asset b/unity_Project/ProjectSettings/InputManager.asset index 8f410de..ecc8706 100644 Binary files a/unity_Project/ProjectSettings/InputManager.asset and b/unity_Project/ProjectSettings/InputManager.asset differ