使用射线的DOTween插件实现镜头移动到父物体效果

使用射线的DOTween插件实现镜头移动到父物体效果

根据上一篇内容已经可以实现镜头位移的操作,但对于实际项目来说,极少有单层级的物体存在于项目中,那么,实现寻找父物体必不可少。

实现效果

1、 点击物体镜头移动到附近
2、 点击物体镜头对准物体
3、 点击子物体也移动到父物体


前期准备

1、 任意版本DOTween插件
2、 添加几个物体,保证显示在Main Camera内部
3、 给Main Camera添加脚本组件


编写脚本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;

public class DotweenCam : MonoBehaviour
{
    Ray ray;
    GameObject targetGameObject;
    Transform targetTransform;
    void Update()
    {
        raySystem();
    }
    void raySystem()
    {
        if (Input.GetMouseButtonDown(0))
        {
            ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hitInfo;
            if (Physics.Raycast(ray, out hitInfo))
            {                
                targetGameObject = hitInfo.collider.gameObject;
                var father = targetGameObject.transform.parent;
                if (father == null)
                {
                    targetTransform = targetGameObject.transform;
                }
                else {
                    while (father != null)
                    {
                        targetTransform = father;
                        father = targetTransform.parent;
                    }
                }                
                clickMove();
            }
        }
    }
    void clickMove() {
        transform.DOMove(targetTransform.forward*-5+ targetTransform.up*5+ targetTransform.position, 1);
        transform.DORotate(new Vector3(30, targetTransform.eulerAngles.y, 0), 1);
    }

}

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页