using DG.Tweening; using System.Collections; using System.Collections.Generic; using UnityEngine; /// /// 螺丝 /// public class Tool_Screw : Tool_Base { /// /// 标识 /// public string id; /// /// 是否已拧紧 /// public bool isInstall; /// /// 上螺丝位置 /// public Transform installPos; /// /// 是否带电 /// public bool hasElectricity; /// /// 正在移动不能操作 /// private bool isMoving; ///// ///// 螺丝拧紧时的位置 ///// //private float localYInstallValue; ///// ///// 螺丝拧松时的位置 ///// //private float localYUnInstallValue; protected override void OnAwake() { base.OnAwake(); id = gameObject.name; } /// /// 被拧紧 /// /// public void BeInstalled(Tool_Screwdriver screwdriver) { if (!isMoving) { isMoving = true; Debug.Log("开始拧紧螺丝"); //设置螺丝刀初始位置 screwdriver.transform.position = installPos.position; screwdriver.transform.localEulerAngles = installPos.localEulerAngles; //动画 transform.DOLocalMoveY(transform.localPosition.y + 0.02f, 1) .OnUpdate(() => { transform.RotateAroundLocal(Vector3.up, 1); screwdriver.transform.position = installPos.position; screwdriver.transform.RotateAroundLocal(Vector3.right, 10); }) .OnComplete(() => { Debug.Log("螺丝已拧紧"); isInstall = true; isMoving = false; }); } } /// /// 被拧松 /// /// public void BeUnInstalled(Tool_Screwdriver screwdriver) { if (!isMoving) { isMoving = true; Debug.Log("开始卸螺丝"); //设置螺丝刀初始位置 screwdriver.transform.position = installPos.position; screwdriver.transform.localEulerAngles = installPos.localEulerAngles; //动画 transform.DOLocalMoveY(transform.localPosition.y - 0.02f, 1) .OnUpdate(() => { transform.RotateAroundLocal(Vector3.up, 1); screwdriver.transform.position = installPos.position; screwdriver.transform.RotateAroundLocal(Vector3.right, 10); }) .OnComplete(() => { Debug.Log("螺丝已拧松"); isInstall = false; isMoving = false; }); } } }