Unity 常用接口 学习记录

加载prefab

GameObject obj = (GameObject)Resources.Load("XXX");

知道自己是第几个孩子

using UnityEngine;

public class ChildIndexChecker : MonoBehaviour
{
    int siblingIndex

    void Start()
    {
        // 获取当前对象在父对象中的索引(从0开始)
        siblingIndex = transform.GetSiblingIndex();

        // 打印当前对象是第几个孩子(将索引+1以从1开始计数)
        Debug.Log(gameObject.name + " 是它父对象的第 " + (siblingIndex + 1) + " 个孩子。");
    }

    void Update()
    {
        // 假设我们想要在某个条件下将这个对象移到第一个位置
        if (Input.GetKeyDown(KeyCode.Space))
        {
            transform.SetSiblingIndex(0);
        }
    }
}

类型转换

//int转float
private float a = (float)10;

//float转int
int b = (int )(2.5f)

//string转int
int.Parse()//失败会报错

if(int.TryParse("11",out int a))
{
    Debug.Log(a);//成功打印11
}
else
{
    Debug.Log(a);//失败打印0
}

委托

//发送消息
using UnityEngine;
public class SendInfo : MonoBehaviour
{
    public delegate void DelegateInform(int b);
    public static event DelegateInform EventInform;

    void AA()//执行AA发送消息
    {
        EventInform(2);
    }
}
//接受消息
using UnityEngine;
public class ReceiveInfo : MonoBehaviour
{
    void OnEnable()
    {
        SendInfo .EventInform +=BB;
    }
    void OnDisable() 
    {
        SendInfo .EventInform -=BB;
    }

    void BB(int b)
    {
        //受到消息执行此操作
    }
}

携程,延迟触发

    {        
        StartCoroutine(TimeToDo());
    }
 
    IEnumerator TimeToDo()
    {
        yield return new WaitForSeconds(2f);
        Debug.Log("2秒后执行这里");
    }

当前播放的动画
animator.GetCurrentAnimatorStateInfo(0).IsName("XXX")

动画在过渡状态

animator.IsInTransition(0);

创建带层级的可编辑的list

using System.Collections.Generic;
using UnityEngine;

[CreateAssetMenu(fileName ="New WeaponsGroup",menuName ="Inventory/New WeaponsGroup")]
public class WeaponsGroup : ScriptableObject
{
    public List<WeaponData> WeaponsList=new List<WeaponData>();
}

[System.Serializable]
public class WeaponData
{
    public int ID;
    public string name;
    public GameObject weapon;
    public GameObject mag;
    public int DPS_min;
    public int DPS_max;
    public int bullet_current;
    public int bullet_max;
    public Item bagItem;
}

面板隐藏public

[HideInInspector]

Unity按键输入

if (Input.GetKeyDown(KeyCode.F))
{
   //如果按下F键,则执行...
}

添加对Tag的判断

GameObject aa;
if(aa.CompareTag("Player"))
{
//如果aa是Player执行...
}

Vector3.Distance 计算两个物体之间的距离

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class Distance : MonoBehaviour
{
    public Transform objTrans1;  //定义两个 Transform 组件变量
    public Transform objTrans2;
 
    void Start()
    {
        //计算两个物体距离,使用 Vector3.Distance()
        float dis = Vector3.Distance(objTrans1.position, objTrans2.position);
        //输出到控制台
        Debug.Log("Distance = " + dis);
    }
}
  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值