Unity3D 开发技巧

视频教程:

Unity3D 开发技巧分享,你可能不知道的小知识


Unity中文课堂教程地址:

Unity3D开发-你可能不知道的知识 | Unity 中文课堂


Start 函数可以用协程

默认协同函数 Start 可将 void 改为IEnumerator 作为协程启动

cs 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class StartTimer : MonoBehaviour
{
    private IEnumerator Start()
    {
        Debug.Log("Step1 :" + Time.time);
        yield return null;
        //一帧之后做一些事情
        Debug.Log("Step2 :"+Time.time);
        yield return new WaitForSeconds(1f);
        //延迟之后做一些事情
        Debug.Log("Step3 :" + Time.time);
    }
}

Inspector面板 显示私有属性

私有属性为灰色,运行时按下alt键时 显示脚本中命名

使用 Properties 面板

脚本右键 选择Properties

Inspector面板 显示自定义脚本属性

属性前加入 [field: SerializeField]


以上方法依然适用于接口

创建接口IDanageable

cs 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public interface IDanageable
{ 
    float MaxHealth { get; set; }
    float CurrentHealth { get; set; }
    void Damage(float danageAmount);
    void Die();
}

实现接口,想要显示的属性标记 [field :SerializeField ]

复制代码
cs 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Enemy : MonoBehaviour,IDanageable
{
    [field :SerializeField ]
    public float MaxHealth { get; set; }
    public float CurrentHealth { get; set ; }

    public void Damage(float danageAmount)
    {   
    }

    public void Die()
    {
    }

}

脚本属性面板显示HDR

默认声明的 Color 是不能使用HDR

cs 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ColorStuff : MonoBehaviour
{
    [ColorUsage(true,true)]
    [SerializeField]
    private Color _SpriteColor;
}

属性前加 [ColorUsage(true,true)]

快速删除Inspector 组件的属性

点击属性后 按下键盘退格键可变为null

Inspector面板可进行数学运算

Alt +鼠标左键可快速最大化最小话窗口

代码添加注释

复制代码
cs 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SummaryScript : MonoBehaviour
{
    /// <summary>
    /// 函数注释
    /// </summary>
    public void Function(){ }
    /// <summary>
    ///  函数注释
    ///  函数注释2
    /// </summary>
    /// <param name="data">数据1</param>
    /// <param name="data2">数据2</param>
    public void Function(string data,float data2)  {}
}

函数前输入///后 输入注释 ,其余脚本调用时可查看

cs 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ScriptToCallFunction : MonoBehaviour
{
    private SummaryScript _summaryScript;
    private void Start()
    {
        _summaryScript = GetComponent<SummaryScript>();
        _summaryScript.Function();
    }
}

使用 #region #endregion 折叠代码

复制代码
cs 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SummaryScript : MonoBehaviour
{
    /// <summary>
    /// 函数注释
    /// </summary>
    public void Function(){ }
    #region 折叠的注释
    /// <summary>
    ///  函数注释
    ///  函数注释2
    /// </summary>
    /// <param name="data">数据1</param>
    /// <param name="data2">数据2</param>
    #endregion
    public void Function(string data,float data2)  {}
}

代码批量修改

按下键盘Alt键+鼠标左键和进行批量选择

按下 Shift + ALT键 鼠标点击开头和结尾也可批量操作

键盘 ALT +Ctrl+鼠标左键可控制不同垂直位置的光标

使用 ?. 可代替 !=null

创建物体时默认坐标归零

Edit -> Preferences -> Scene Wiew ->Create Objects at Origin

以固定定距离移动物体

设置固定移动量

按下Ctrl +Shift 点击物体的轴可以固定距离移动

相关推荐
xcLeigh1 分钟前
C# Winform 2048小游戏源码
开发语言·c#·winform
前端熊猫7 分钟前
transform学习
前端·学习·html
全栈小513 分钟前
【PHP】部署和发布PHP网站到IIS服务器
服务器·开发语言·php
饮啦冰美式16 分钟前
php如何定位问题
开发语言·php
数据小爬虫@17 分钟前
如何利用Python爬虫精准获得1688店铺的所有商品信息
开发语言·爬虫·python
GISer_Jing17 分钟前
React渲染流程与更新diff算法
前端·javascript·react.js
zls36536517 分钟前
.NET高效下载word文件
开发语言·c#·word·.net
郑祎亦19 分钟前
JavaWeb开发:HTML 页面与接口对接
前端·后端·java-ee·html
SoraLuna24 分钟前
「Mac玩转仓颉内测版25」基础篇5 - 布尔类型详解
开发语言·算法·macos·cangjie
Au_ust25 分钟前
css:感觉稍微高级一点的布局
前端·css