Unity3D
文章平均质量分 53
Yan_Sl
————
展开
-
重构
1.梳理并分解继承体系(Tease ApartInheritance)。某个继承体系同时承担两项责任。建立两个继承体系,并通过委托关系让其中一个可以调用另一个。 public 2.将过程化设计转化为对象设计(Convert Procedural Design toObjects)。你手上有一些传统过程化风格的代码。将数据记录变成对象,将大块的行为分成小块,并将行为移入相关对象之中。...原创 2018-09-02 19:16:02 · 296 阅读 · 0 评论 -
Unity 静态类 Static Class
1 静态类: 1. 不能继承Monobehaviour2.不可以用在Unity 物体上 。3.所有成员,变量函数等,都得是静态的。4 静态类构造函数是静态的,并且私有的,可以用来初始化,数据。使用 . 1.主要用来设计 帮助函数 比如sine ,cos 等 2. 数据保存。 调用顺序. 调用改静态的时候,构造函数自动调用一次。销毁这个静态在游戏退出的时候。原创 2018-02-04 13:58:15 · 4663 阅读 · 0 评论 -
Unity 反射赋值共同变量
1 创建一个基类Demo ,然后在 子类,创建不同的变量类型 ,然后在同一个物体下可以赋值两个共有的变量,效果如下 ,第一先写基类的共有属性,及其反射获取属性值using System;using UnityEngine;using System.Reflection;public class CharacterEditor : MonoBehaviour { pu原创 2018-01-24 18:31:28 · 635 阅读 · 0 评论 -
Unity 图片修改
检测图片,修改图片格式using UnityEngine;using UnityEditor;using System.IO;using System.Collections.Generic;using System.Text;using System.Reflection;public class TextureCheck { [MenuItem("检查图片/检查文件原创 2018-01-24 17:43:31 · 1807 阅读 · 0 评论 -
Unity 模型压缩
模型压缩using UnityEngine;using UnityEditor;using System.IO;using System.Collections.Generic;//using Babybus.Framework.Serialization;using System.Text;public class MoodelCheck{ [MenuItem(原创 2018-01-24 17:31:02 · 2316 阅读 · 0 评论 -
Unity 射线 Ray
using UnityEngine;using System.Collections;public class TestRayCast : MonoBehaviour { Vector3 position; void Update () { if (Input.GetMouseButtonDown(0)) { pos原创 2018-01-31 15:53:00 · 272 阅读 · 0 评论 -
Unity 判断鼠标是否在Ui上
public class Utility{ /// /// 判断点击的位置是否在UI上 /// /// true:当前点击在UI上 false:当前不点击在UI上 public static bool IsPointerOverUIObject() { PointerEventData eventDataCurrentPositio原创 2018-01-31 09:54:38 · 3187 阅读 · 0 评论 -
unity 点击生成3D 物体
using UnityEngine;using System.Collections;public class ClickObject : MonoBehaviour {//要生成物体的预制体。 public GameObject prefab; public float distance; void Start () { } void Up原创 2018-01-31 11:26:39 · 5041 阅读 · 1 评论 -
Unity 惯性滑动(思想可以用于类似摄像机,Scroll)
using UnityEngine;using System.Collections; public class Drag : MonoBehaviour { private Vector3 _screenPoint; private Vector3 _offset; private Vector3 _curScreenPoint; private Vector3 _curPosi原创 2018-01-31 09:46:55 · 2070 阅读 · 0 评论 -
Unity 数学物理
下次有空弄能量守恒原创 2017-09-30 10:11:46 · 255 阅读 · 0 评论 -
Unity Lua Enum
Unity向Lua传入参数问题 GameObject go = GameObject.Find("/Light"); Light light = go.GetComponent<Light>(); LuaFunction func = state.GetFunction("ChangeLightType"); func原创 2017-09-30 14:54:06 · 978 阅读 · 0 评论 -
Unity 常用数学
下一篇,关于抛物线,物理等相关在Unity中使用的情况。原创 2017-09-28 11:07:35 · 382 阅读 · 0 评论 -
Unity 摄像机平滑跟随
using UnityEngine;public class CameraLag : MonoBehaviour{ public Transform attach; public Transform target; public float time = 1.0f; public Vector3 pos; Vector3 spd = Vector3.z原创 2017-08-24 17:28:53 · 729 阅读 · 0 评论 -
UnityShader 简单水的效果,以及海岸效果
1.下面主要拿一张类似上面的底层图片,通过控制外部参数 xScroll Speed ,yScroll Speed来调整水流速度参数。Shader "SeaShader"{ Properties { _MainTex ("Texture", 2D) = "white" {} _ScrollXSpeed ("X Scrll Speed", Range(原创 2017-07-04 23:10:54 · 7039 阅读 · 0 评论 -
Unity 简单渐变着色器
可以控制模型的的本身坐标以及渐变参数进行测试 Shader "Custom/CotrolGradient_3Color" { Properties { [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} _ColorTop ("Top Color", Color) = (1,1,1原创 2017-07-04 22:46:22 · 939 阅读 · 0 评论 -
Unity 抛物线,直线,Sine曲线等
1.用粒子制作抛物线。1.创建一个枚举public enum FunctionOption { Linear, Exponential, Parabola, Sine }2.创建静态方法//直线private static float Linear (float x) { return x; }原创 2017-06-23 20:47:07 · 834 阅读 · 0 评论 -
Unity DontDestroyOnLoad
1 .先创建两个场景 test1 ,test2 ,在builde setting设置 代码如下using UnityEngine;using System.Collections;using UnityEngine.SceneManagement;public class GameManager : MonoBehaviour { /// /// 单例原创 2018-02-04 14:45:18 · 1674 阅读 · 0 评论 -
Unity 静态变量跨场景
创建两个场景同时赋值StaticVarious 脚本 然后按键好,H ,J 进行不断切换场景,会发现unity 控制台输出数字不断增加,然后把静态去掉,这样结果都是10。using UnityEngine;using System.Collections;using UnityEngine.SceneManagement;public class StaticVarious : Mono原创 2018-02-04 15:38:17 · 3337 阅读 · 0 评论 -
Unity 3D物体到UI
using UnityEngine;using System.Collections;//Dotween 官方去下载using DG.Tweening;public class UIHeart : MonoBehaviour { public Camera _uiCamera; public Transform _target; public GameObject原创 2018-01-29 18:06:51 · 1504 阅读 · 0 评论 -
Unity C#编程优化——枚举
转载 2018-05-10 08:00:17 · 7622 阅读 · 0 评论 -
Unity 点击按钮回调,反馈
uButtonScale: 鼠标进入,点击等互动的按钮反馈using UnityEngine;using UnityEngine.UI;using UnityEngine.Events;using UnityEngine.EventSystems;using System.Collections;namespace uTools { [AddComponentMen...原创 2018-02-24 15:21:31 · 2745 阅读 · 1 评论 -
Unity 声音管理
自己去下一个Dotween 的插件。using UnityEngine;using System.Linq;using System.Collections.Generic;using System;using DG.Tweening;public class SoundMaster : MonoBehaviour{ public const string ...原创 2018-02-24 11:40:46 · 1133 阅读 · 0 评论 -
Unity 序列化问题
序列化问题 : 可以参考 http://mp.blog.csdn.net/mdeditor/index/79264380,这个可以在编辑器模式下被序列化,也就是可以被分配,这时候就可以不用手动创建对象。但是如果一个可序列化的类,在运行的时候才给他引用那么它就不会被序列化。 看下面两个脚本测试的代码: using UnityEngine;using System.Collection原创 2018-02-07 20:14:44 · 443 阅读 · 0 评论 -
Unity List Sort
1.C# List 的 Sort 按F12可以跳转到public void Sort(Comparison comparison);所以可以写个类似这样的委托泛型T比较,范围数值为int 型的 比如如下 private int CompareByTotalTime(int x,int y) { return y.CompareTo(x); }然后有一个List原创 2018-02-07 19:35:33 · 3851 阅读 · 0 评论 -
Unity String To Enum
方法1 string to enum 枚举 枚举变量 枚举 枚举 枚举的字符串StatusEnum MyStatus = (StatusEnum) Enum.Parse(typeof(StatusEnum), "Active", true);方法2 可以写在Utility 公用函数里面的 ,原创 2018-02-07 19:12:41 · 1547 阅读 · 0 评论 -
Unity ObjectPoolManager 对象池
using UnityEngine;using System.Collections;using System.Collections.Generic;public class PoolManager : MonoBehaviour { Dictionary<int,Queue<ObjectInstance>> poolDictionary = new D...原创 2018-02-13 11:09:31 · 524 阅读 · 0 评论 -
Unity 异步加载场景
using UnityEngine;using System.Collections;using UnityEngine.SceneManagement;using Babybus;public class LoadingManager : MonoBehaviour{ public static int nextSceneId = -1; ...原创 2018-02-12 11:54:48 · 698 阅读 · 0 评论 -
Unity 滑动球飞出去
using UnityEngine;using System.Collections;public class ThrowBasketBallTest : MonoBehaviour { public float BeginTime; public float EndTime; public float TimeInterval; public float ...原创 2018-02-11 21:30:04 · 399 阅读 · 0 评论 -
Unity GPU perf warning
出现这种的警告的时候“”Tiled GPU perf. warning: RenderTexture color surface (0x0) was not cleared/discarded可以通过在Edit -> Graphic Emulation ->设置成 : No Emulation 具体可以看 https://docs.unity3d.com/Manual/Gra...原创 2018-02-11 19:44:16 · 487 阅读 · 0 评论 -
Unity 在AndroidStudio调试android游戏
1 .当把Unity3D 开发的游戏安装到android 手机的时候偶尔会出现这类问题,在Unity 里面没有错误,而在手机里面出现一些Bug,导致一些流程游戏不能玩。这里可以通过运行手机游戏通过USB 在AndroidStudio 里面调试,有时候可能usb 连接出现检测不到设备,然后出现 如下的 Unable to create Debug Bridge:Unable to sta...原创 2018-02-11 17:27:33 · 2971 阅读 · 0 评论 -
Unity SceneManager.sceneLoaded
1.如果要判断现在场景是从哪个场景切换过来就可以通过下面注册一个回调,获取被切换的场景名称,代码如下using UnityEngine;using UnityEngine.SceneManagement;public class ExampleCode : MonoBehaviour{ // called zero void Awake() {原创 2018-02-05 21:04:32 · 4352 阅读 · 0 评论 -
Unity 序列化
1.Unity 支持的类型都可以被序列化,也就是可以在编辑界面看到。 例如 List ,public int ,public float , public Vector3 ,等等。 或者有注明 类 如下 [Serializable] class Trouble { public Trouble t1; public Trouble t2; public原创 2018-02-05 20:56:39 · 239 阅读 · 0 评论 -
Unity 鼠标双击
using UnityEngine;using System.Collections;public class SlideScreen : MonoBehaviour{ bool one_click = false; bool timer_running; float timer_for_double_click; float delay; //public原创 2017-06-06 21:00:10 · 446 阅读 · 0 评论 -
UnityShader 屏幕特效 模糊
上一篇文章写了屏幕特效必须的几个要素,这边通过一个 脚本继承与PostEffectsBase .以及通过shader 交互实现屏幕模糊特效。下面通过添加在摄像机,引用3的shader。using UnityEngine;using System.Collections;[ExecuteInEditMode]public class Test : PostEffectsBase { pu原创 2017-05-05 22:48:09 · 1217 阅读 · 0 评论 -
Unity CG Foreach
链表 :Foreach会导致CG回收https://www.zhihu.com/question/30334270/answer/49858731原创 2017-04-06 16:41:21 · 247 阅读 · 0 评论 -
UnityEditor 反射事件2
using UnityEngine;using System.Collections;using System.Reflection;using System.Collections.Generic;public class EventGraphManager : MonoBehaviour { // 一些节点类 纯信息的节点 private static List<BaseNod原创 2017-03-01 21:03:38 · 355 阅读 · 0 评论 -
UnityEditor 打开对应类
编辑器查找类,并打开:public class EventGraphAction { private static Dictionary<string, string> ClassFiles = null; public static bool OpenInEditor(string className) { if (ClassFiles == null)原创 2017-02-27 19:58:41 · 1032 阅读 · 0 评论 -
Unity3D StateMachine扩展优化
1.Unity3D StateMachine正常的状态下是每个动做结束后没有回调,所以有时候我们要判断当前不是哪一个动作是要做什么的,如下:public class TestJS : MonoBehaviour { public Animator _animator; private AnimatorTransitionInfo _chan原创 2017-02-05 16:51:19 · 1992 阅读 · 0 评论 -
Unity Animator混合树
1: 状态转换 :是在规定时间,或者某一条件下:从一个动作过渡到另一个动作,在两个不同的动作过渡用这个会比较有好的过渡效果。2. BlendTree 混合树: 一般混合两个相似的动作,它们可以通过控制权重来决定混合程度。混合树创建步骤:1.右击出现creat state -> from blend Tree.2.双击新建的混合树:原创 2017-02-06 10:43:56 · 8385 阅读 · 0 评论 -
Unity调用c++代码
创建一个 c++动态链接库项目:1.在项目 后面选择 DLL empty Project 3.在SourceFiles添加c++ Files(cpp)代码如下#include "stdafx.h"#include "stdlib.h"extern"C"__declspec(dllexport)intRandom(intmi原创 2017-02-06 10:45:41 · 3213 阅读 · 0 评论