
Unity
文章平均质量分 63
开发游戏的顶级装备,一点一点的为它增星和升品,终有一天要用它去挑战所有的Boss
Jo.H
Daily self reflection
展开
-
Update执行顺序问题
每个脚本中Update执行顺序原创 2022-09-07 20:44:26 · 315 阅读 · 0 评论 -
transform.SetParent
Unity.Transform原创 2022-08-18 16:12:56 · 705 阅读 · 0 评论 -
简易的对象池单例类
Unity GameObject对象池原创 2022-03-03 14:59:26 · 147 阅读 · 0 评论 -
通过Field Of View值计算屏幕成像的宽高
透视相机相机成像的面积、相机高度和视野角度之间的关系 Camera camera = Camera.main; float areaHeight = 40,//摄像机成像面积的高度 distance = 50,//摄像机的高度 fieldOfView = 60;//摄像机视野角度 //已知:摄像机高度、视野角度 areaHeight = 2.0f * distance * Mathf.Tan(f...原创 2020-09-28 15:27:17 · 2810 阅读 · 0 评论 -
在Unity中使用lua
lua学习直通车我在项目中使用的是LuaFramework框架,也就是tolua用C#的思路使用lua1.单例类:创建一个lua脚本,TestSingle.lua--[[------------------------------------------------]]--TestSingle = {}--定义一个名为name的变量TestSingle.name = "test"--ageTestSingle.age = 15--公有变量,在引用了TestSingle之后就可以原创 2020-09-21 18:58:02 · 7803 阅读 · 0 评论 -
Shader中RGB和HSV的相互转换
RGB中的xyz分别对应r(红色)g(绿色)b(蓝色)HSV中的xyz分别对应h(色调、颜色)s(饱和度)v(明度)RGB转化到HSV的算法:max=max(R,G,B);min=min(R,G,B);V=max(R,G,B);S=(max-min)/max;if (R = max) H =(G-B)/(max-min)* 60;if (G = max) H = 120+(B-R)/(max-min)* 60;if (B = max) H = 240 +(R-G)/(max-min)*原创 2020-07-02 10:54:23 · 1481 阅读 · 0 评论 -
通过Mesh生成网格
GameObject obj = new GameObject("go"); MeshFilter mf = obj.AddComponent<MeshFilter>(); MeshRenderer mr = obj.AddComponent<MeshRenderer>(); //添加一个材质球 ...原创 2020-02-20 19:07:11 · 2919 阅读 · 0 评论 -
新导入的美术资源自动设置TextureType
using UnityEngine;using UnityEditor;using System.IO;//需要继承AssetPostprocessorpublic class SetTextureType: AssetPostprocessor {void OnPostprocessTexture(Texture2D texture) {//资源目录string di...原创 2019-06-28 10:52:18 · 666 阅读 · 0 评论 -
Unity保存图片、截图
//需要一个摄像机void BuildTexture ( ) { Camera camera = Camera.main; //尺寸 Rect rect = new Rect(0, 0, 1920, 1080); // 创建一个RenderTexture对象 、设置渲染图片的大小和深度 RenderTexture ...原创 2019-06-28 10:49:35 · 3513 阅读 · 0 评论 -
Unity图片资源使用的归类
使用图片资源打包App测试,对同一张JPG和PNG图片打包导出资源的大小(图片尺寸:1920*1080、1024*1024、1024*512、800*800、799*799)(iOS设备支持的压缩方式)JPG:PNG:#2018年3月2日 18:09:12补充昨天的时候项目出现了点问题,之前通过研究和实践,在iOS环境下设置图片格式为R...原创 2019-06-27 10:57:22 · 729 阅读 · 0 评论 -
Image 模糊遮罩Shader
Shader "Custom/Vague" {Properties{_Color("Main Color", Color) = (1,1,1,1)_BumpAmt("Distortion", Range(0,128)) = 10_MainTex("Tint Color (RGB)", 2D) = "white" {}_BumpMap("Normalmap", 2D) = "bu...原创 2019-06-28 10:52:25 · 653 阅读 · 0 评论 -
Unity_Mono对象的单例模式
MonoBehaviour单例基类原创 2019-06-17 16:04:50 · 810 阅读 · 0 评论 -
Uinty下载文件保存到本地
FileInfo file;void Action () {string UrlPath = "下载的文件地址";string LocalPath = "保存文件地址";StartCoroutine( DownFile (UrlPath) );}//协程下载文件IEnumerator DownFile (string url) {WWW www = new WWW(...原创 2019-06-27 11:00:18 · 866 阅读 · 0 评论 -
Unity对应的平台
名称 描写叙述 UNITY_EDITOR 定义从游戏代码调用Unity编辑器脚本的指令。 UNITY_EDITOR_WIN 在Windows上为编辑器代码定义指令。 UNITY_EDITOR_OSX 定义专门针对Mac OS X(包括Universal、PPC和Intel体系结构)编译/执行代码的指令。 UNITY_STAND...原创 2019-06-27 10:59:37 · 935 阅读 · 0 评论 -
Unity_Editor
在资源目录下的Editor文件夹下的脚本。引用UnityEditor并继承Editor类[MenuItem("MyEditor/MyFunction")]放在静态方法的前面,在上面的菜单栏会出现MyEditor选项,点击下选项中的MyFunction会执行相应的静态方法using UnityEngine;using UnityEditor;public class MyEd...原创 2019-06-27 10:59:30 · 1435 阅读 · 0 评论 -
Unity_Attribute特性
[RequireComponent(typeof(Animation))]:放在类的上面,挂此脚本是时检测该GameObject有没有Animation组件(也可以是脚本),如果没有,就添加一个Animation组件。[AddComponentMenu("MyScripts/NewScript")]放在类的上面,在菜单栏里出现MyScripts选项,点击下面的NewScript便会添加...原创 2019-06-27 10:59:23 · 228 阅读 · 0 评论 -
Unity资源加载对应的路径
Application.dataPath输出路径:工程根目录+"/Assets"Application.streamingAssetsPath输出路径:工程根目录+"/Assets/StreamingAssets"StreamingAssets路径下的文件在打包过程中会原封不动保存,在游戏运行过程中,资源不会主动加载,所有资源只读不可写,读取文件需要使用WWW方式Applica...原创 2019-07-25 16:37:33 · 483 阅读 · 0 评论 -
通过修改四元数的方法实现相机抖动特效
相机下创建CameraShake脚本using UnityEngine;using System.Collections;public class CameraShake: MonoBehaviour { private Vector3 thisPosition; private Quaternion thisRotation; //抖动强度 p...原创 2016-05-18 17:28:31 · 298 阅读 · 0 评论 -
保存当前游戏截图
官方API: Application.CaptureScreenshot("ScreenShot.png");Texture2D方法:void ScreenShot () {//路径string path =Application.dataPath + "/screenshot.png";//Rect mRect =new Rect(0, 0, Screen....翻译 2019-06-17 16:04:38 · 255 阅读 · 0 评论 -
物体的轴向指向目标(LookAt高级版)
轴向朝向目标点原创 2019-06-17 16:04:31 · 704 阅读 · 0 评论 -
5.2_UGUI_Canvas(GameObject)
CanvasRender Mode:渲染模式。 Screen Space-Overlay:屏幕自适应渲染模式。 Screen Space-Camera:通过摄像机渲染,camera settings会影响UI的显示。 ...原创 2019-04-29 15:30:06 · 244 阅读 · 0 评论 -
5.2_AssetBundles(加载)
读取资源文件:创建C#脚本名称为RunAssetBundles。using UnityEngine;using System.Collections;public class RunAssetBundles : MonoBehaviour { //AssetBundle资源路径,不同平台下StreamingAssets的路径是不同的,这里需要注意一下。 p...原创 2019-04-29 15:23:40 · 111 阅读 · 0 评论 -
5.2_AssetBundles(打包)
打包文件和场景:1、在Asset文件夹下创建名称为StreamingAssets的文件夹(自由命名,保存文件和读取文件的路径)。2、创建C#脚本名称为MyAssetBundles(脚本放入Editor文件夹中,不能结成MonoBehaviour)。using UnityEngine;using System.Collections;using UnityEditor;publ...原创 2019-04-29 15:23:00 · 251 阅读 · 0 评论 -
5.2_UGUI_RectTransform
Anchors Presets:选择种类对应后面的四个值和名称发生改变,可以调节Text边框的大小及其位置;其中PosZ值和名称不会改变。方框(BluePoint):编辑RectTransform时将不应用已存在的缩放和旋转值,并且也会开启吸附模式。R(RawEdit):编辑pivot和anchor时,将不会改变位置和大小的值。Anchors:调节锚点的位置。Pivot:中心点位置...原创 2019-04-29 15:21:11 · 161 阅读 · 0 评论 -
5.3.4_角色换装的脚本
需要多套带有骨骼的模型文件,模型的骨骼要一致,需要换装的部位是分离状态,在基础模型上挂脚本ChangeCloth代码:using UnityEngine;using System.Collections.Generic;using System.Collections; public class ChangeCloth : MonoBehaviour { //要...原创 2016-05-12 20:16:41 · 470 阅读 · 0 评论 -
相对坐标
计算物体的相对坐标:Vector3 pos1;Vector3 pos2;//pos1相对于pos2的坐标,即pos1是pos2的子级Vector relativePos1=pos1-pos2;//pos2相对于pos1的坐标,即pos2是pos1的子级Vector relativePos2=pos2-pos1;一个通过鼠标移动物体的代码实例:(被移动的物体是一个Plan...原创 2016-06-14 12:44:11 · 972 阅读 · 0 评论 -
异步加载场景
using UnityEngine;using System.Collections;public class LoadScene : MonoBehaviour {//异步加载的对象AsyncOperation async;void Start () {// 执行协程方法StartCoroutine (loadScene ());}IEnumerator ...原创 2016-07-02 19:36:49 · 152 阅读 · 0 评论 -
判断输入的按键
KeyCode key;void OnGUI(){Event curr = Event.current;if(curr.isKey){key = curr.KeyCode;Debug.Log(key);}}Event类需要在OnGUI里使用原创 2016-07-29 15:32:04 · 236 阅读 · 0 评论 -
UGUI_GraphicRaycaster检测鼠标位置的所有UI
void InspectUI() { List<RaycastResult> list = new List<RaycastResult>();//场景中的EventSystem PointerEventData eventData = new PointerEventData(EventSystem....原创 2019-04-29 15:34:25 · 3195 阅读 · 0 评论 -
自定义编辑器窗口
一个简单的EditorWindow窗口:在Editor文件夹下创建继承EditorWindow 的脚本,利用OnGUI方法回执界面(Update方法可用)代码小示例:using UnityEngine;using UnityEditor;using System.Collections;public class MyEditorWindow : EditorWindow{...原创 2019-04-29 15:37:23 · 323 阅读 · 0 评论 -
Animator
1、Animator组件Controller:对应的Project中AnimatorControllerAvatar:(翻译为阿凡达.....-_-!)模型中的一个元素(这样的图标),调节控制模型的骨骼之类的参数Apply Root Motion:勾选为通过任务动画控制角色的移动,否则通过脚本控制移动Update Mode:模型更新的方式 ...原创 2019-04-29 15:39:12 · 433 阅读 · 0 评论 -
Unity Mesh
mesh:网格(继承object)一个基本的模型由点和面构成//读取模型的mesh信息void ReadMesh ( ) {//获取脚本下的模型Mesh mesh= GetComponent<MeshFilter>().mesh;//输出模型的定点坐标foreach(Vector3 vec in mesh.vertices) {Debug.Log(vec...原创 2019-06-17 16:04:22 · 615 阅读 · 0 评论 -
EventSystems接口
using UnityEngine.EventSystems;IDragHandler:当拖拽对象移动时每帧调用public void OnDrag(PointerEventData data);IBeginDragHandler:当拖拽对象开始移动时调用一次public void OnBeginDrag(PointerEventData eventData)IEn...翻译 2019-06-17 16:04:12 · 437 阅读 · 0 评论 -
UnityEvent
使用UnityEvent需要引用UnityEngine.Events官方示例代码:using UnityEngine;using UnityEngine.Events;using System.Collections;public class Work: MonoBehaviour{ //声明响应事件 UnityEvent m_MyEvent; ...原创 2019-06-17 16:03:18 · 715 阅读 · 0 评论 -
遮罩shader
//第一种:添加遮罩贴图,有像素的部位会被遮罩不显示Shader "MyShader/AlphaMask" {Properties{_Color("Main Color", Color) = (1,1,1,1)_MainTex("Base (RGB) Trans (A)", 2D) = "white" {}_MaskTex("Mask (A)", 2D) = "white"...原创 2019-06-17 16:01:57 · 686 阅读 · 0 评论 -
屏幕分辨率控制
关于打包之前Player设置中的一些问题:Resolution and Presentation选项Default Is Full Screen:勾选之后默认启动程序的是全屏模式,未勾选时下面的值为运行时默认的宽和高Run In Background:是否后台运行(默认是不勾选,需要主动勾选)Display Resolution Dialog:显示分辨率设置窗口 ...原创 2019-06-17 16:01:43 · 1043 阅读 · 0 评论 -
Shader Forge_1.26
源自官网MainDiffuse (漫反射)这是着色器的主要颜色。漫反射颜色将根据出光的法线角度接收光线或衰减光线,以及被阴影遮罩。Diffuse Power (漫反射力道)这是光法线角度衰减的指数。可在使用大于 1 的值时获得额外的金属外观。请注意,无论何时启用,它都相当消耗效能。Specular (镜面反射)这是着色器镜面高光的颜色。值越高就越明亮,黑色完...翻译 2019-06-17 16:01:30 · 480 阅读 · 0 评论 -
DoTween
官方链接using GD.Tween;//公用的方法:valueBase为公共变量,valueTo为插入的值,changeTime为渐变过程所需要的时间,Fun为值发生改变时调用的方法,也可以写成lamuda表达式()=>{//执行的代码;}DOTween.To(() => valueBase, x => valueBase= x, valueTo, changeT...原创 2019-06-17 16:00:40 · 314 阅读 · 0 评论 -
MonoBehaviour_事件触发调用的方法
//当renderer(渲染器)在任何相机上都不可见时被调用void OnBecameInvisible()////当renderer(渲染器)在任何相机上可见时被调用void OnBecameVisible()//进入碰撞时被调用(游戏物体上要带有Collider组件,并且其中一个物体要带有rigidbody组件)void OnCollisionEnter(Collision...原创 2019-04-29 15:41:57 · 775 阅读 · 0 评论 -
5.3.4_FBX自动生成AnimatorController
在模型中截取多个模型动画,生成AnimatorController动画控制器:using System.Collections;using UnityEditor;using UnityEngine;using System.Collections.Generic;public class BuildAnimator : Editor{ static List<...原创 2019-04-29 15:40:36 · 458 阅读 · 0 评论