Conflicts:
	Assets/Scripts/Child.cs
This commit is contained in:
Patrice Vignola 2015-08-23 14:30:06 -04:00
commit 3327dc2f7d
4 changed files with 47 additions and 43 deletions

View File

@ -5,7 +5,7 @@ using System.Collections.Generic;
public class AutoTarget : MonoBehaviour public class AutoTarget : MonoBehaviour
{ {
private List<Transform> targets; private List<Transform> targets;
public float minAngleRange = 20f; public float minAngleRange = 30f;
// Use this for initialization // Use this for initialization
void Start () void Start ()

View File

@ -25,7 +25,6 @@ public class Child : MonoBehaviour
private bool _isSleeping; private bool _isSleeping;
private float _invulnerableTime; private float _invulnerableTime;
private Bed _currentBed; private Bed _currentBed;
public Transform target;
private bool _isInLava; private bool _isInLava;
private int _index; private int _index;
@ -46,6 +45,8 @@ public class Child : MonoBehaviour
if (_numZ == 3) Die(); if (_numZ == 3) Die();
} }
} }
private AutoTarget _autoTarget;
public int Index public int Index
{ {
get { return _index; } get { return _index; }
@ -62,6 +63,8 @@ public class Child : MonoBehaviour
{ {
_rb = GetComponent<Rigidbody>(); _rb = GetComponent<Rigidbody>();
AnimationPillow.SetActive(false); AnimationPillow.SetActive(false);
_autoTarget = GetComponent<AutoTarget>();
} }
void Start() void Start()
@ -74,11 +77,7 @@ public class Child : MonoBehaviour
Animator.SetBool("IsOnBed", GetBed()); Animator.SetBool("IsOnBed", GetBed());
_isGrounded = IsGrounded(); _isGrounded = IsGrounded();
Debug.Log(_isGrounded);
// look at the target
if (target != null) {
transform.LookAt(target);
}
// We move the child depending on the camera orientation // We move the child depending on the camera orientation
@ -118,7 +117,20 @@ public class Child : MonoBehaviour
public void ThrowMecanimPillow() public void ThrowMecanimPillow()
{ {
Vector3 direction = target == null ? direction = transform.forward : target.transform.position - pillow.transform.position; if (pillow == null) return;
Transform target = _autoTarget.GetTarget(transform.forward);
Vector3 direction;
if (target != null)
{
direction = target.transform.position - pillow.transform.position;
}
else
{
direction = transform.forward;
}
direction = direction.normalized; direction = direction.normalized;
@ -132,6 +144,8 @@ public class Child : MonoBehaviour
pillow.IsOwned = false; pillow.IsOwned = false;
target = null;
pillow = null; pillow = null;
} }
@ -140,9 +154,21 @@ public class Child : MonoBehaviour
Pillow incomingPillow = other.GetComponent<Pillow>(); Pillow incomingPillow = other.GetComponent<Pillow>();
// picking up a pillow // getting hit by a pillow
if (this.pillow == null && incomingPillow.IsPickable) { if (incomingPillow.IsThrown) {
Debug.Log("abc");
if (incomingPillow.Owner != this)
{
//player is hit
Debug.Log("Child is hit by a pillow");
Push(other.GetComponent<Rigidbody>().velocity.normalized * 10 * hitPushBackForce);
Destroy(other.gameObject);
}
}
// picking up a pillow
else if (this.pillow == null && incomingPillow.IsPickable) {
Debug.Log("def");
pillow = incomingPillow; pillow = incomingPillow;
pillow.transform.parent = transform; // make the pillow a child of Child pillow.transform.parent = transform; // make the pillow a child of Child
@ -154,19 +180,6 @@ public class Child : MonoBehaviour
// TODO: place the pillow correctly or animate or something... // TODO: place the pillow correctly or animate or something...
} }
// getting hit by a pillow
else if (incomingPillow.IsThrown) {
if (pillow.Owner != null && pillow.Owner != this)
{
//player is hit
Debug.Log("Child is hit by a pillow");
Push(other.GetComponent<Rigidbody>().velocity.normalized * 10 * hitPushBackForce);
Destroy(other.gameObject);
}
}
} }
} }
@ -229,7 +242,7 @@ public class Child : MonoBehaviour
return colliders.Length > 0 ? colliders[0].GetComponent<Bed>() : null; return colliders.Length > 0 ? colliders[0].GetComponent<Bed>() : null;
} }
internal void Throw() { public void Throw() {
if (_isInLava) return; if (_isInLava) return;
if (pillow != null) { if (pillow != null) {
@ -272,11 +285,6 @@ public class Child : MonoBehaviour
void OnCollisionStay(Collision collision) void OnCollisionStay(Collision collision)
{ {
if (collision.gameObject.tag == "Walls")
{
Debug.Log(_isPushed);
}
if (collision.gameObject.tag == "Lava") if (collision.gameObject.tag == "Lava")
{ {
_invulnerableTime += Time.deltaTime; _invulnerableTime += Time.deltaTime;
@ -295,9 +303,10 @@ public class Child : MonoBehaviour
} }
else if (_wasPushed && collision.gameObject.tag == "Walls") else if (_wasPushed && collision.gameObject.tag == "Walls")
{ {
/*
_wasPushed = false; _wasPushed = false;
Push(Vector3.Reflect(_pushedDir.normalized, collision.contacts[0].normal) * _pushedDir.magnitude); Push(Vector3.Reflect(_pushedDir.normalized, collision.contacts[0].normal) * _pushedDir.magnitude);*/
} }
} }
@ -337,4 +346,4 @@ public class Child : MonoBehaviour
{ {
ActivateVibration(false); ActivateVibration(false);
} }
} }

View File

@ -75,23 +75,15 @@ public class ChildController : MonoBehaviour
} }
if (xLookingValue != 0 || zLookingValue != 0) { if (xLookingValue != 0 || zLookingValue != 0) {
//Transform target = _autoTarget.GetTarget(new Vector3(xLookingValue, 0, zLookingValue));
Transform target = _autoTarget.GetTarget(xLookingValue, zLookingValue);
_child.target = target; transform.eulerAngles = new Vector3(
if (_child.target != null) {
transform.LookAt(_child.target);
}
else {
transform.eulerAngles = new Vector3(
transform.eulerAngles.x, transform.eulerAngles.x,
Mathf.Atan2(xLookingValue, zLookingValue) * Mathf.Rad2Deg -90, // -90 to correct forward facing angle... Mathf.Atan2(xLookingValue, zLookingValue) * Mathf.Rad2Deg -90, // -90 to correct forward facing angle...
transform.eulerAngles.z); transform.eulerAngles.z);
}
} }
else { else {
_child.target = null; // no auto targeting when not actively pressing the joystick in a direction
// if player is not look with the right joystick, then face the direction we're going // if player is not look with the right joystick, then face the direction we're going
// if left joystick is used, else we don't change the facing direction // if left joystick is used, else we don't change the facing direction
if (xValue != 0 || zValue!= 0) { if (xValue != 0 || zValue!= 0) {

View File

@ -80,7 +80,10 @@ public class Pillow : MonoBehaviour {
} }
void OnCollisionEnter(Collision other) { void OnCollisionEnter(Collision other) {
if (!IsPickable && !IsLost) { Child child = other.gameObject.GetComponent<Child>();
if (!IsPickable && !IsLost && Owner == child)
{
// on first collision, revert the pillow as pickable // on first collision, revert the pillow as pickable
MakePickable(); MakePickable();
} }