ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:17.17KB ,
资源ID:365836      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/365836.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(unity编辑器扩展chapter2.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

unity编辑器扩展chapter2.docx

1、unity编辑器扩展chapter2Unity 编辑器扩展 Chapter2 请选中您要保存的内容,粘贴到此文本框 二. 使用Gizoms绘制网格及矩阵转换使用1. 创建Leve类,作为场景控制类: 1 using UnityEngine; 2 /使用namespace方便脚本管理 3 namespace RunAndJump 4 /使用部分类partial将类依据不同的功能分布到各个文件中,便于功能区分个管理 5 public partial class Level : MonoBehaviour 6 SerializeField 7 public int _totalTime = 60;

2、8 SerializeField 9 private float _gravity = -30; 10 SerializeField 11 private AudioClip _bgm; 12 SerializeField 13 private Sprite _background; 14 15 SerializeField 16 private int _totalColumns = 25; 17 18 SerializeField 19 private int _totalRows = 10; 20 21 public const float GridSize = 1.28f; 22 23

3、 private readonly Color _normalColor = Color.grey; 24 private readonly Color _selectedColor = Color.yellow; 25 public int TotalTime 26 get return _totalTime; 27 set _totalTime = value; 28 29 30 public float Gravity 31 get return _gravity; 32 set _gravity = value; 33 34 35 public AudioClip Bgm 36 get

4、 return _bgm; 37 set _bgm = value; 38 39 40 public Sprite Background 41 get return _background; 42 set _background = value; 43 44 45 public int TotalColumns 46 47 get 48 49 return _totalColumns; 50 51 52 set 53 54 _totalColumns = value; 55 56 57 58 public int TotalRows 59 60 get 61 62 return _totalR

5、ows; 63 64 65 set 66 67 _totalRows = value; 68 69 70 71 /绘制边界 72 private void GridFrameGizmo(int cols, int rows) 73 74 Gizmos.DrawLine(new Vector3(0,0,0),new Vector3(0,rows*GridSize,0) ); 75 Gizmos.DrawLine(new Vector3(0, 0, 0), new Vector3(cols*GridSize,0, 0); 76 Gizmos.DrawLine(new Vector3(cols*Gr

6、idSize, 0, 0), new Vector3(cols*GridSize, rows * GridSize, 0); 77 Gizmos.DrawLine(new Vector3(0, rows*GridSize, 0), new Vector3(cols*GridSize, rows * GridSize, 0); 78 79 80 /绘制内部线条 81 private void GridGizmos(int cols, int rows) 82 83 for (int i = 0; i < cols; i+) 84 85 Gizmos.DrawLine(new Vector3

7、(i*GridSize,0,0),new Vector3(i*GridSize,rows*GridSize,0) ); 86 87 88 for (int j = 0; j < rows; j+) 89 90 Gizmos.DrawLine(new Vector3(0,j * GridSize, 0), new Vector3(cols * GridSize, j * GridSize, 0); 91 92 93 94 /D使用unity默认的OnDrawGizmos方法来绘制Gzimos 95 private void OnDrawGizmos() 96 97 Color oldCol

8、or = Gizmos.color;/修改的这些属性都是静态属性,所以要在修改前保存其值,修改后再复原,防止后续使用该静态属性是修改后的 98 Matrix4x4 oldMatrix = Gizmos.matrix;/修改的这些属性都是静态属性,所以要在修改前保存其值,修改后再复原,防止后续使用该静态属性是修改后的 99 Gizmos.matrix = transform.localToWorldMatrix;/该语句可以为gizmos提供该transform位移,旋转,缩放等特性100 101 Gizmos.color = _normalColor;102 GridGizmos(_total

9、Columns,_totalRows);103 GridFrameGizmo(_totalColumns,_totalRows);104 105 Gizmos.color = oldColor;/恢复修改后的静态属性106 Gizmos.matrix = oldMatrix;/恢复修改后的静态属性107 108 109 private void OnDrawGizmosSelected()110 111 Color oldColor = Gizmos.color;112 Matrix4x4 oldMatrix = Gizmos.matrix;113 Gizmos.matrix = transf

10、orm.localToWorldMatrix;114 115 116 Gizmos.color = _selectedColor;117 GridFrameGizmo(_totalColumns, _totalRows);118 119 Gizmos.color = oldColor;120 Gizmos.matrix = oldMatrix;121 122 123 124 / <summary>125 / 将世界坐标转换为grid网格中的点坐标126 / </summary>127 / <param name=point>世界坐标</param>

11、;128 / <returns></returns>129 public Vector3 WordToGridCoordinates(Vector3 point)130 131 Vector3 gridPoint=new Vector3(int)(point.x-transform.position.x)/GridSize),(int)(point.y-transform.position.y)/GridSize),0.0f);132 return gridPoint;133 134 135 / <summary>136 / Grid网格中的位置转换为世界坐

12、标坐标137 / </summary>138 / <param name=col>行值</param>139 / <param name=row>列值</param>140 / <returns></returns>141 public Vector3 GridToWordCoordinates(int col,int row)142 143 Vector3 wordPoint=new Vector3(transform.position.x+(col*GridSize/2.0f),transform.posi

13、tion.y+(row*GridSize/2.0f),0.0f);144 return wordPoint;145 146 / <summary>147 / 坐标位置是否在网格边界内148 / </summary>149 / <param name=point></param>150 / <returns></returns>151 public bool IsInsideGridBounds(Vector3 point)152 153 float minX = transform.position.x;154 float

14、 maxX = minX + _totalColumns*GridSize;155 float minY = transform.position.y;156 float maxY = minY + _totalRows*GridSize;157 return (point.x >= minX && point.x <= maxX && point.y >= minY && point.y <= maxY);158 159 160 / <summary>161 / 坐标位置是否在网格边界内162 / </summary>163 / <param name=point></param>164 / <returns></returns>165 166 public bool IsInsideGridBounds(int col,int row)167 168 return (col>=0&&col<_totalColumns&&row>=0&&row<=_totalRows);16

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1