自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

miaobeihai的博客

动脑,动手,开口

  • 博客(32)
  • 资源 (1)
  • 收藏
  • 关注

转载 atexit()函数

atexit()函数atexit   函数名: atexit   头文件:#include   功 能: 注册终止函数(即main执行结束后调用的函数)   用 法: int atexit(void (*func)(void));   注意:按照ISO C的规定,一个进程可以登记多达32个函数,这些函数将由exit自动调用。atexit()注册的

2017-04-22 10:15:38 217

原创 单例模式的内存释放

单例模式前面已经说过了,下面说说单例模式的私有静态成员_singleton的释放如果在类的析构行为中有必须的操作,比如关闭文件,释放外部资源,那么上面所示的代码无法实现这个要求。我们需要一种方法,正常地删除该实例。可以在程序结束时调用GetInstance并对返回的指针调用delete操作。这样做可以实现功能,但是不仅很丑陋,而且容易出错。因为这样的附加代码很容易被忘记,而且也

2017-04-21 13:07:13 4084

原创 写时复制Copy-On-Write

Copy-on-Write简称COW,不是奶牛,好处就是能保证数据的完整性,掉电的话容易恢复。•Copy-On-Write一定使用了“引用计数”,必然有一个变量类似于RefCnt•当第一个string对象str1构造时,string的构造函数会根据传入的参数从堆上分配内存•当有其它string对象复制str1时,这个RefCnt会自动加1•当有对象析构时,这个计数会减1;直到最

2017-04-20 23:05:16 524 1

原创 Enemy的创建

先创建一个Empty,创建位置创建一个脚本,并把prefbs加进去,脚本如下:using UnityEngine;using System.Collections;using System.Collections.Generic;public class SpawnManager : MonoBehaviour { public static SpawnManager _

2017-04-20 20:56:13 617

原创 BOSS的AI(自动寻路和自动攻击)

CharacterController控制移动•SimpleMove(Vector3)移动根据和角色的位置和距离,判断是否进行攻击,攻击的时候利用随机数来随机发起攻击 Attack1 Attack2using UnityEngine;using System.Collections;public class SoulBoss : MonoBehaviour {

2017-04-20 20:11:45 4668 1

原创 主角状态机的设计

使用Unity里面的Animation State Machine动画状态机动画的属性设置,分为循环动画和一次性动画主角的动画分类•休闲•行走•攻击 Attack1 Attack2 RangeAttack•被攻击打开animator窗口,如何打开呢?可以先在Hierarchy中选中player,在Windows->animator就可以打开其窗口了

2017-04-20 16:55:24 582

原创 友元

•一般来说,类的私有成员只能在类的内部访问,类外的函数是不能访问它们的。•但是,可以将一个函数定义为类的友元函数,这时该函数就可以访问该类的私有成员了。•同时,也可以把另一个类B定义为本类A的友元类,这样B类就可以访问A类的任何成员了。•下面来具体讨论友元函数和友元类的概念>友元之非成员函数:•在类的定义中用friend声明了一个外部函数或其他类的成员函数(publ

2017-04-19 21:44:23 1317

原创 运算符重载详情

•为了使对用户自定义数据类型的数据的操作与内置的数据类型的数据的操作形式一致,C++提供了运算符的重载,通过把C++中预定义的运算符重载为类的成员函数或者友元函数,使得对用户的自定义数据类型的数据—对象的操作形式与C++内部定义的类型的数据一致。•1.运算符重载规则: >重载运算符时,参数必须是自定义类类型或者枚举类型 >运算符的优先级和结合性保持不变 >&& ||

2017-04-19 20:58:50 586

原创 只能生成栈对象和只能生成堆对象

new/delete的工作机制:•使用new表达式时发生的三个步骤:1.调用名为operator new的标准库函数,分配足够大的原始的未类型化的内存,以保存指定类型的一个对象2.运行该类型的一个构造函数去初始化对象3.返回指向新分配并构造的构造函数对象的指针•使用delete表达式时,发生的步骤:1.调用对象的析构函数2.调用名为operator delete

2017-04-17 10:13:13 426

原创 使用CharacterController控制行走(包括键盘和虚拟杠)

使用CharacterController控制行走:使用Input.GetAxis("Horizontal") 和 "Vertical"得到垂直和水平方向的值使用CharacterController.SimpleMove(Vector3)参数表示运动的方向和速度单位可以认为是 m/s首先,调出CharacterController并设置

2017-04-16 22:45:40 7977

转载 Charactor controller

角色控制器主要用于对第三人称或第一人称游戏主角控制,并不是刚体的物理效果,添加角色控制器的方法为。 1.选中要控制的角色对象,依次打开菜单栏中的component->phyics->character controller选项,即可为角色添加角色控制器组件2.character controller组件属性面板slope Limit:坡度限制,用于设置所控制的角色对

2017-04-16 10:54:14 565

原创 摄像机的跟随

开发摄像机的跟随•使用Vertor3.Lerp 插值运算摄像机的视角,让摄像机观察着角色•Quaternion.LookRotation 得到一个四元数,表示跟参数一样方向的旋转•Quaternion.Slerp 按照圆弧插值,这个插值计算更适用于,角度变换首先调整摄像机,使它和player在一个合适角度和位置,然后选择GameObject-Align With

2017-04-16 10:38:55 594

原创 Vector3.Lerp

Unity3D中的线性插值Lerp()函数解析在unity3D中经常用线性插值函数Lerp()来在两者之间插值,两者之间可以是两个材质之间、两个向量之间、两个浮点数之间、两个颜色之间,其函数原型如下:Material.Lerp 插值function Lerp(start : Material, end : Material, t : float) : void 在两个材质之间插值

2017-04-15 21:27:48 11748 2

原创 NGUI一些按钮的设置

如图所示,点击HEAD箭头可以实现头部换装,点击HAND箭头可以实现手部换装,点击地下的颜色按钮可以换颜色,点击PLAY按钮可以实现进入下一场景,实现代码如下所示:using System.Collections;using System.Collections.Generic;using UnityEngine;public class menucontrollers : Mon

2017-04-15 19:56:30 703

原创 碰撞器和触发器

碰撞器由来1.系统默认会给每个对象(GameObject)添加一个碰撞组件(ColliderComponent),一些背景对象则可以取消该组件。2.在Unity3D中,能检测碰撞发生的方式有两种,一种是利用碰撞器,另一种则是利用触发器。这两种方式的应用非常广泛。为了完整的了解这两种方式,我们必须理解以下概念:(一)碰撞器是一群组件,它包含了很多种类,比如:Box Collide

2017-04-14 23:00:52 1483

原创 shoot

using UnityEngine;using System.Collections;public class Shooter : MonoBehaviour { public Rigidbody projectile; public Transform shotPos; public float shotFace = 1000f; public float moveSpeed =

2017-04-14 22:13:50 373

原创 单例模式

//单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例#include #include using std::cout;using std::endl;//要求:在内存之中只能创建一个对象//1. 该对象不能是全局对象或者栈对象//2. 只能是堆对象//作用:// 在一定程序上,它是可以取代全局变量

2017-04-13 21:53:14 171

转载 static成员

下面详细说说static的功能以及它的来龙去脉:static作为编程语言里面一种重要的数据类型,它的地位在面试的过程里也是相当的高。为什么要引入static  函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保存至下一次调用时,如何实现?最容

2017-04-13 21:15:54 456 1

原创 const关键字

1.const定义常量(和#define)的区别:const int a=10;发生时机:编译,它就会有语法检查,如果定义常量,推荐使用#define a 10发生时机:预处理,只是一个简单的字符串替换(宏出错的话并不能意识到已经发生了错误)2.const 修饰指针的两种形式:常量指针(pionter to const):const int *pa=&b;*pa=110;//

2017-04-13 18:12:14 310

原创 类中的构造函数,析构函数,复制构造函数,赋值函数

构造函数、析构函数、赋值函数是每个类最基本的的函数。每个类只有一个析构函数和一个赋值函数。但是有很多构造函数(一个为复制构造函数,其他为普通构造函数。对于一个类A,如果不编写上述四个函数,c++编译器将自动为A产生四个默认的函数,即:A(void)                                    //默认无参数构造函数A(const A &a)

2017-04-11 20:51:57 589

转载 new和malloc的区别

new与malloc的10点区别1. 申请的内存所在位置new操作符从自由存储区(free store)上为对象动态分配内存空间,而malloc函数从堆上动态分配内存。自由存储区是C++基于new操作符的一个抽象概念,凡是通过new操作符进行内存申请,该内存即为自由存储区。而堆是操作系统中的术语,是操作系统所维护的一块特殊内存,用于程序的内存动态分配,C语言使用malloc从堆上分

2017-04-11 11:07:13 206

原创 名称空间的用法

1.using namespace std:using 编译指令,它会把std空间中的所有对象全部引进来,可能产生冲突2.using std::count //using声明机制3.作用域限定符:区别全局变量和局部变量名字相同,当重载时,规定“::+全局变量名”来称呼全局变量 int a=100;int num=100;//匿名空间namespace A{ int nu

2017-04-10 17:51:12 299

转载 引用和指针的区别和联系

★ 相同点:    1. 都是地址的概念;    指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。    ★ 区别:    1. 指针是一个实体,而引用仅是个别名;    2. 引用使用时无需解引用(*),指针需要解引用;    3. 引用只能在定义时被初始化一次,之后不可变;指针可变;    引用“从一而终” ^_^    4. 引用没有 con

2017-04-10 16:40:18 371

转载 c++引用

引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&代替了*。引用(reference)是c++对c语言的重要扩充。引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名    (1)&在此不是求地址运算,而是起标识作用。   (2)类型标识符是指目标变量的类型。    (3)声明引用时,必须同时

2017-04-10 16:26:50 313

转载 Particle System

更详细内容请参考:https://docs.unity3d.com/ScriptReference/ParticleSystem.htmlParticle System参数列表Duration 持续时间The duration the Particle System will be emitting particles.粒子系统发射粒子的持续时间

2017-04-10 15:10:58 2079

原创 Rigidbody

游戏中物体受到力的作用,更多地是现象的模拟,而不是真的受到力的作用。通俗一点,就是让你感觉好像真的受到了力,而实际是只不过是一堆代码的执行而已。Rigidbody又叫刚体,可以通过它来实现游戏中的受力情况。可以通过componet来添加Rigidbody如果一个cube选择了Rigdbody,这时所选择的立方体就有了刚体组件。添加了这个组件的游戏对象可以接受外力和扭矩力,并且像真实的物体一

2017-04-09 20:53:23 500

转载 unity中的一些常见快捷键

以下都是转载,个人更新几个重命名的快捷键是F2ALT+鼠标左键点击Hierarchy对象可以展开和收起对象的所有子物体SHIFT+空格 可以对当前窗口进行放大缩小 Windows系统Unity3D中的快捷键组合键 键 功能 File 文件 Ctrl   N New Scene 新建场景 Ctrl   O Open ...

2017-04-08 21:58:27 76049 1

原创 实现键盘对Camera的控制

控制的一些API:https://docs.unity3d.com/550/Documentation/ScriptReference/Input.html在Camera编写c#,实现对镜头的控制:using System.Collections;using System.Collections.Generic;using UnityEngine;public class decr

2017-04-08 20:08:23 405

原创 Unity的Coroutine协程

Courotine也称为协同程序或者协程,协同程序可以和主程序并行运行,和多线程类似。协同程序可以用来实现让一段程序等待一段时间后继续运行效果,例如:执行步骤1,等待3秒;执行步骤2,等待某个条件为true;执行步骤3.。。。。unity与协同程序有关的函数有:   1.StartCouroutine  启动一个协同程序  2.StopCouroutine 终止一个协同程序  3.Stop...

2017-04-08 16:38:23 473

转载 IEnumerable1

本文导读:IEnumerable和IEnumerable接口在.NET中是非常重要的接口,它允许开发人员定义foreach语句功能的实现并支持非泛型方法的简单的迭代,IEnumerable和IEnumerable接口是.NET Framework中最基本的集合访问器。它定义了一组扩展方法,用来对数据集合中的元素进行遍历、过滤、排序、搜索等操作。IEnumerable接口是非常的简单,只

2017-04-08 15:54:33 432

原创 unity-transform(物体上升脚本)

可以查看手册https://docs.unity3d.com/550/Documentation/ScriptReference/Transform.htmlusing System.Collections;using System.Collections.Generic;using UnityEngine;//using 命名空间,public class NewBehaviour

2017-04-08 10:08:05 5471

原创 研究生英语复试面试准备

Goodmorning,mydearprofessors.Iamgladtobehereforthisinterview.Itismygreatpleasuretointroducemyselftoallofyou.Mynameis***,23(twenty-three)ye

2017-04-06 10:03:04 1283

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除