using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RockerMove : MonoBehaviour
{
public Transform cameraRig;
public float moveSpeed;
protected Transform rockerPoint;
protected Transform holdPoint;
protected bool isMove = false;
public Transform holdBall;
// Use this for initialization
public virtual void Update()
{
if (isMove)
{
Move();
HoldBallControl();
}
}
public virtual void HoldBallControl()
{
float localScale = Vector3.Distance(holdPoint.position, rockerPoint.position);
localScale = Mathf.Clamp(localScale, 0, 0.1f);
holdBall.transform.localScale = Vector3.one * localScale * 2;
holdBall.LookAt(holdPoint.position);
}
///
/// 初始化摇杆点
///
///
public void InitRockerPoint(Transform _holdPoint)
{
if (!rockerPoint)
{
rockerPoint = new GameObject("Rocker").transform;
rockerPoint.parent = this.transform;
holdBall.transform.parent = rockerPoint;
holdBall.transform.localPosition = Vector3.zero;
}
this.holdPoint = _holdPoint;
rockerPoint.transform.position = holdPoint.position;
holdBall.gameObject.SetActive(true);
isMove = true;
HoldBallControl();
}
public virtual void Move()
{
Vector3 _moveDir = holdPoint.position - rockerPoint.position;
cameraRig.transform.Translate(_moveDir * moveSpeed * Time.deltaTime, Space.World);
}
public void Close()
{
isMove = false;
holdPoint = null;
holdBall.gameObject.SetActive(false);
}
}