10.平台数据类

10.平台数据类


10.1 知识点

要点分析

创建平台类脚本,这个脚本会挂载到场景的某一对象上。

平台类定义一些变量。有些平台可以按下时下平台,所以有canFall配置。

//平台的宽
public float width = 5;
//平台是否显示影子
public bool canShowShadow = true;
//平台是否可以下落
public bool canFall = true;

//我们平台对应的Y坐标
public float Y => this.transform.position.y;
//平台的左边界
public float Left => this.transform.position.x - width / 2;
//平台的右边界
public float Right => this.transform.position.x + width / 2;

在OnDrawGizmos绘制平台使用Gizmos.DrawLine绘制平台

private void OnDrawGizmos()
{
    Gizmos.color = Color.red;
    Gizmos.DrawLine(this.transform.position - Vector3.right * width / 2, this.transform.position + Vector3.right * width / 2);
}

给外部提供一个判断玩家能否跳到当前平台上的函数

/// <summary>
/// 检测玩家是否可以落在我之上
/// </summary>
/// <param name="pos"></param>
/// <returns></returns>
public bool CheckObjFallOnMe(Vector3 pos)
{
    //对象的Y在我之上 并且在我的左右边界之内 就认为可以落在我身上
    if (pos.y >= Y && pos.x <= Right && pos.x >= Left)
        return true;
    return false;
}

10.2 知识点代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/// <summary>
/// 平台数据类
/// </summary>
public class Platform : MonoBehaviour
{
    //平台的宽
    public float width = 5;
    //平台是否显示影子
    public bool canShowShadow = true;
    //平台是否可以下落
    public bool canFall = true;

    //我们平台对应的Y坐标
    public float Y => this.transform.position.y;
    //平台的左边界
    public float Left => this.transform.position.x - width / 2;
    //平台的右边界
    public float Right => this.transform.position.x + width / 2;


    /// <summary>
    /// 检测玩家是否可以落在我之上
    /// </summary>
    /// <param name="pos"></param>
    /// <returns></returns>
    public bool CheckObjFallOnMe(Vector3 pos)
    {
        //对象的Y在我之上 并且在我的左右边界之内 就认为可以落在我身上
        if (pos.y >= Y && pos.x <= Right && pos.x >= Left)
            return true;
        return false;
    }

    private void OnDrawGizmos()
    {
        Gizmos.color = Color.red;
        Gizmos.DrawLine(this.transform.position - Vector3.right * width / 2, this.transform.position + Vector3.right * width / 2);
    }
}


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏