Assignment for RMIT Mixed Reality in 2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

58 lines
1.4 KiB

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ArrowBehaviour : MonoBehaviour
{
[SerializeField]
private float m_rotationSpeed = 1f;
[SerializeField]
private Transform m_tip;
[SerializeField]
private float m_lifeTime = 45;
private Rigidbody m_rb;
ContactPoint[] contactPoints;
// Start is called before the first frame update
void Start()
{
m_rb = GetComponent<Rigidbody>();
Destroy(gameObject, m_lifeTime);
}
// Update is called once per frame
void FixedUpdate()
{
if (m_rb != null && !m_rb.isKinematic)
transform.forward = Vector3.Slerp(transform.forward, m_rb.velocity, m_rotationSpeed);
}
private void OnCollisionEnter(Collision collision)
{
contactPoints = new ContactPoint[collision.contactCount];
collision.GetContacts(contactPoints);
foreach (ContactPoint point in contactPoints)
{
//Debug.Log($"point: {point.point}, position: {m_tip.position}. [{Vector3.Distance(point.point, m_tip.position)}]");
if (Vector3.Distance(point.point, m_tip.position) < 0.1f)
{
Destroy(GetComponent<ArtificialGravity>());
Destroy(m_rb);
//m_rb.isKinematic = true;
transform.parent = point.otherCollider.transform;
return;
}
}
}
}