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 点击物体的轴可以固定距离移动

相关推荐
随风一样自由7 小时前
【前端独角兽】刚进入前端领域的前端开发用jQuery还是Vue3?
前端·javascript·vue3·jquery
IMPYLH7 小时前
HTML 的 <data> 元素
前端·html
西门吹-禅8 小时前
java springboot N+1问题
java·开发语言·spring boot
YHHLAI8 小时前
[特殊字符] 面试中的 Promise —— 从入门到精通
前端·javascript·面试
skywalk81638 小时前
设计并实现段言的 C FFI 绑定机制 @Trae
c语言·开发语言·python·编程
IT笔记10 小时前
【Rust】Rust Match 模式匹配详解
java·开发语言·rust
kyriewen10 小时前
我扒了 GPT-5.6 的全部编程跑分——有一项 OpenAI 没敢放出来
前端·gpt·ai编程
2zcode10 小时前
免费开源项目文档:基于MATLAB卷积神经网络的口罩佩戴检测系统
开发语言·matlab·cnn
逝水无殇10 小时前
C# 运算符重载详解
开发语言·后端·c#
前端H10 小时前
微前端 v3 架构升级:从加载隔离到状态协同
前端·架构·状态模式