61 lines
1.3 KiB
C#
61 lines
1.3 KiB
C#
|
using System.Collections;
|
||
|
using System.Collections.Generic;
|
||
|
using UnityEngine;
|
||
|
|
||
|
public class ArrowSript : MonoBehaviour
|
||
|
{
|
||
|
private GameObject targetObj;
|
||
|
|
||
|
// set the target obj
|
||
|
public void SetTargetObj(GameObject obj)
|
||
|
{
|
||
|
targetObj = obj;
|
||
|
}
|
||
|
|
||
|
// method to place the arrow over the passed object
|
||
|
private void PlaceArrowOverObject(GameObject obj)
|
||
|
{
|
||
|
// get the obj position
|
||
|
Vector3 objPos = obj.transform.position;
|
||
|
|
||
|
// put the arrow over the obj
|
||
|
transform.position = objPos;
|
||
|
|
||
|
// rotate the arrow to face the obj
|
||
|
transform.LookAt(obj.transform);
|
||
|
|
||
|
// increase the arrow height from the obj top
|
||
|
transform.position += new Vector3(0, 0.3f, 0);
|
||
|
|
||
|
// show
|
||
|
ShowArrow(obj);
|
||
|
}
|
||
|
|
||
|
// method to show the arrow
|
||
|
public void ShowArrow(GameObject obj)
|
||
|
{
|
||
|
// enable the arrow
|
||
|
gameObject.SetActive(true);
|
||
|
}
|
||
|
|
||
|
public void Update()
|
||
|
{
|
||
|
// rotate on y axis
|
||
|
transform.Rotate(0.5f, 0, 0);
|
||
|
|
||
|
// if the target obj is not null
|
||
|
if (targetObj != null)
|
||
|
{
|
||
|
// place the arrow over the target obj
|
||
|
PlaceArrowOverObject(targetObj);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// method to hide the arrow
|
||
|
public void HideArrow()
|
||
|
{
|
||
|
// disable the arrow
|
||
|
gameObject.SetActive(false);
|
||
|
}
|
||
|
}
|