hello guys i create the jenga game for android and it's almost done. but the game need to have something like arrows that shows the direction of pulling block. indeed arrows comes out from corner of selected block i wrote a sample code and it does work but the problem is that the nib of arrows not looking toward of pulling direction
i put the link of sample project for you guys i hope you guys help me out.


sample img
demo project

Code:

using System.Collections;
using System.Linq;
using System.Reflection;
using Boo.Lang;
using UnityEngine;
 
public class Dragpointer : MonoBehaviour
 
{
    public GameObject Prefab;
 
    private GameObject _head;
    private GameObject _body;
    private Rigidbody _connectedBody;
 
    public float MinDistance = 1f;
    public float Speed = 1f;
    private float _dis;
 
    public int DCounter;
 
 
    public List<GameObject> PointerList = new List<GameObject>();
 
    public bool Disablefuntion = false;
 
    public Transform Target;
 
    void Start()
 
    {
        _connectedBody = transform.GetChild(0).GetComponent<Rigidbody>();
        transform.gameObject.AddComponent<Rigidbody>();
        transform.GetComponent<Rigidbody>().isKinematic = true;
        transform.gameObject.AddComponent<FixedJoint>();
 
        transform.GetComponent<FixedJoint>().connectedBody = _connectedBody;
    
        PointerList.Add(transform.GetChild(0).gameObject);
    }
 
    void Update()
 
    {
        if (Disablefuntion == true)
        
        {
            Invoke("InstantiatePointer", 0.5f);
    
            for (int i = 1; i < PointerList.Count; i++)
 
            {
                _head = PointerList.ElementAt(i - 1);
                _body = PointerList.ElementAt(i);
 
        
            
                _dis = Vector3.Distance(_body.transform.position, _head.transform.position);
 
                float T = Time.deltaTime * _dis / MinDistance * Speed;
 
                if (T > 0.5f)
                    T = 0.5f;
        
               _body.transform.position = Vector3.Lerp(_body.transform.position, _head.transform.position, T);
    
//            
//                Vector3 targetDir = PointerList.ElementAt(0).transform.position - _body.transform.position;
//                float step = Speed * Time.deltaTime;
//                Vector3 newDir = Vector3.RotateTowards(_body.transform.forward, targetDir, step, 0.0F);
//            
//                _body.transform.rotation = Quaternion.LookRotation(newDir);
 
            }
 
        }
 
    }
 
 
    private void InstantiatePointer()
 
    {
 
        GameObject pointer = Instantiate(Prefab, Vector3.zero, Quaternion.Euler(90f,90f,0f)) as GameObject;
 
        pointer.transform.parent = transform;
        pointer.transform.localPosition = new Vector3(-0.4f,0f,0f);
 
        this.PointerList.Add(pointer);
 
        if (this.PointerList.Count > 10)
        {
    
            Destroy(GameObject.Find(this.PointerList.ElementAt(1).name));
            this.PointerList.RemoveAt(1);
        }
 
        CancelInvoke();
    }
 
 
 
}