2D平台跳跃类游戏相机跟随

在这里插入图片描述
代码挂载到相机上

/*  使用与2D正交相机
 *  平台跳跃类游戏
 */


using UnityEngine;

public class CameraFollowTarget : MonoBehaviour
{
     Transform target; //看向的目标

    public string lookTargetTag = "Player"; //看向目标的tag

    public Vector2 tragetOffset = new Vector3(2, 2); //X轴和Y轴方向的偏移量


    public float maxLimit; //右边界限制

    public float minLimit; //左边界限制

    private void Update()
    {
        if (target == null)
        {
            target = GameObject.FindGameObjectWithTag(lookTargetTag).transform;
            return;
        }
        Follow();
    }

    private void Follow()
    {
        float xOffset = 0;
        float yOffset = 0;

        bool ismoveX = false;
        bool ismoveY = false;

        if (target.position.x < transform.position.x - tragetOffset.x)
        {
            xOffset = tragetOffset.x;
            ismoveX = true;
        }
        else if (target.position.x > transform.position.x + tragetOffset.x)
        {
            xOffset = -tragetOffset.x;
            ismoveX = true;
        }

        if (target.position .y < transform .position .y - tragetOffset.y)
        {
            yOffset = tragetOffset.y;
            ismoveY = true;
        }
        else if(target.position.y > transform.position.y + tragetOffset.y)
        {
            yOffset = -tragetOffset.y;
            ismoveY = true;
        }

        if (ismoveX)
        {
            float x = target.position.x + xOffset;
            x = Mathf.Clamp(x,minLimit,maxLimit);
            transform.position =   new Vector3(x, transform .position .y, transform .position .z);
        }

        if (ismoveY)
        {
            transform.position = new Vector3(transform .position .x, target.position.y +yOffset , transform .position .z);
        }
        
       
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值