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

相关推荐
Huangjin007_3 分钟前
【C++ STL篇(十三)】无序关联容器 unordered_set / unordered_map解析
开发语言·c++
白日与明月4 分钟前
pip下载库指定操作系统及python版本
开发语言·python·pip
WMX10124 分钟前
Hololens 2 上部署 Unity+MRTK 项目_模型着色
unity·游戏引擎·hololens
折哥的程序人生 · 物流技术专研4 分钟前
Qoder 1.0 完全指南:从安装到Agents驱动开发实战
开发语言·人工智能·python·ai编程
游乐码6 分钟前
unity基础(八)协程
游戏·unity·c#·游戏引擎
Xin_ye100866 分钟前
C# 零基础到精通教程 - 第十六章:ASP.NET Core Web API——构建现代 Web 服务
开发语言·c#
basketball6166 分钟前
Go语言介绍
开发语言·go
霸道流氓气质6 分钟前
Spring Data JPA 完全指南
开发语言·数据库
weelinking11 分钟前
【产品】10_搭建前端框架——把你的原型变成真实页面
java·大数据·前端·数据库·人工智能·python·前端框架
蜡台11 分钟前
Vue Echart 的 **高阶组件化** 封装思路
前端·javascript·vue.js·echarts