unity基础
刘峰1011
....
展开
-
unity 代码动态加载材质求 (Material)
首先新建一个shader,在progect面板中右键Create->Shader->Standard Surface Shader.右键刚才新建的shader,选择Create->Material,unity会自动创建一个名称格式为Custom_shadername的材质。接下来就可以在程序中加载这个Material了,2种方式:1.Material mat = Resource...原创 2018-02-10 22:47:07 · 23718 阅读 · 0 评论 -
unity 接收键盘事件
在任意GameObject脚本中加入以下代码既可: public void Update () { Control() ; KeyControl() ; } private void KeyControl(){ if (Input.GetKeyDown (KeyCode.W)) { Debug.Log("press W"); } if (Input...原创 2018-02-11 00:11:27 · 6916 阅读 · 2 评论 -
untiy Input 获取鼠标以及触摸操作
以下代码放到任意GameObject物体上 public void Update () { Control() ; } private void Control() { if (Input.GetMouseButtonDown(0)) { Debug.Log("MouseButtonDown position: " + Input.mousePosition); }...原创 2018-02-11 00:31:34 · 1432 阅读 · 0 评论 -
unity 在编辑器中始终从固定场景开始执行
unity开发过程中,有时候游戏需要一些初始化工作,所以场景需要按照顺序来启动。这样当我们在编辑中间某个场景想要运行时,就必须切换到第一个场景。这时候我们可以使用RuntimeInitializeOnLoadMethod属性,当unity每次开始运行场景时,会首先调用使用此属性标记的方法,我们在该方法中执行一下跳转场景的方法,这样我们就不用每次都要切换场景了。像下面这样:using UnityEn...原创 2018-02-11 19:18:18 · 5929 阅读 · 1 评论 -
unity 屏幕坐标&世界坐标相互转换
世界坐标转屏幕坐标:Vector3 screenPos = Camera.main.WorldToScreenPoint(pos); 屏幕坐标转世界坐标:Vector3 worldPos = Camera.main.ScreenToWorldPoint(pos);原创 2018-02-11 21:04:53 · 37830 阅读 · 0 评论 -
unity 移动平台打包丢失shader的问题
自己写了个shader,并且是从代码里面来进行加载,编辑器中并没有引用。在编辑器中运行项目没有问题,但是当我发布到iso和android平台之后发现游戏中并不能找到我自己的shader,猜想是unity在打包过程中进行了一些优化,没有用到的shader不会被打到游戏包内。我找到了2个解决办法1.随意创建一个物体并添加使用了此shader的材质。并不推荐此方法,正确的方法应该是第二种。2.在Grap...原创 2018-03-09 11:10:55 · 8825 阅读 · 3 评论 -
判断点是否在扇形范围内
最近做一个潜入游戏其中有一种敌人面前会有一个扇形的检测范围,并且此扇形范围会来回旋转移动,所以就遇到了一个如何判断主角是否在扇形范围内的问题。在网上找了一些方法,但是感觉都太复杂,所以这里自己实现了一下。思路如下:我的扇形的生成方式是从中心方向像两边展开若干角度。所以我们只要算出扇形的中心向量与角色向量的夹脚是否大于扇形的展开角度即可。步骤:扇形的来回摆动是有程序控制,所以这里可以很容易得到扇形当...原创 2018-03-09 11:53:31 · 11390 阅读 · 0 评论