- 博客(17)
- 资源 (1)
- 收藏
- 关注
原创 unity Physics.xxxCast射线检测结果有错误
在project setting中有个Auto Sync Transform选项,在2018.2以前的版本里是默认为true的,在之后版本默认为false。如果禁用AutoSyncTransforms,移动碰撞体,然后调用光线投射,使光线的方向为碰撞体新位置的话,光线投射可能不会击中碰撞体。这是因为光线投射会作用于物理场景的上一次更新版本,而那时物理场景还没有使用碰撞体的新位置来更新。所以射线的检测会出现一些问题,为避免可以勾选上,虽然会对性能有些影响,但总比出bug要好。。。...
2020-12-03 14:36:49
608
原创 www获取网络资源
public string url = "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=2622066562,1466948874&fm=27&gp=0.jpg";IEnumerator Start() { WWW www = new WWW(url); yield return www; }官网教程
2020-11-19 11:58:37
1104
原创 属性的set和get
public int Age { set { //通过set方法 在设置值之前做一些校验的工作 属性的更多好处,需要在写代码过程 中体会 if (value >= 0) {age = value; }} }public float X// 也可以叫做get set方法 { get { return x; } set { x = value; }//如果在get 或者 set前面加上 private,表示这个块只能在类内部调用 }..
2020-11-19 11:58:27
325
原创 虚方法和隐藏方法
使用virtual来定义一个虚方法,在子类中进行重写操作。这样做可以在需求变动或者需要实现同一个方法的多种实现方式时只新建一个子类然后进行重写操作,不用完全复制父类,防止其他方法可能导致出现错误。隐藏方法:当子类里面有一个签名和父类相同的方法的时候,就会把父类中的方法隐藏重写 : 原来的方法不存在了隐藏: 只是把父类中的方法隐藏了,看不到了,实际这个方法还存在, 如果使用子类声明的对象,调用隐藏方法会调用子类的,如果使用父类声明对象,那么就会调用父类中的隐藏方法...
2020-11-19 11:58:17
315
原创 父类和子类在声明上的不同
Enemy enemy = new Boss();//父类声明的对象,可以使用子类去构造 子类声明的对象不可以使用父类构造enemy虽然使用父类进行了声明,但是使用了子类构造,所以本质上是一个子类类型的,我们可以强制类型转换转换成子类类型一个对象是什么类型的 主要看它是通过什么构造的 这里enemy使用了父类的构造函数,所以只有父类中的字段和方法, 不能被强制转换成子类可以通过抽象类去声明对象 但是不可以去构造...
2020-11-19 11:58:08
228
原创 this和base
this可以访问当前类中定义的字段,属性和方法,有没有this都可以访问,有this可以让IDE-VS编译器给出提示,另外当方法的参数跟字段重名的时候,使用this可以表明访问的是类中的字段,base可以调用父类中的公有方法和字段,有没有base都可以访问,但是加上base.IED工具会给出提示,把所有可以调用的字段和方法罗列出来方便选择...
2020-11-19 11:57:51
335
原创 委托的使用方法及其意义
委托可以当作是一个类型,这个类型可以赋值一个方法的引用。使用delegate声明一个委托private delegate string GetAString();static void Main(){int x = 40;GetAString firstStringMethod = new GetAString(x.ToString);Console.WriteLine(firstStringMethod());//调用委托}...
2020-11-19 11:57:37
383
原创 射线检测详解
Ray ray = mainCamera.ScreenPointToRay(Input.mousePosition);//发出射线获取鼠标点击的位置RaycastHit hit;//声明一个RaycastHit类型的变量用来存储碰到的信息Physics.Raycast(ray, out hit);//获取射线碰到的物体的碰撞信息Physics.Raycast(ray, Mathf.Infinity, LayerMask.GetMask("Enemy1", "Enemy2", "UI"));//第一个参
2020-11-17 10:59:17
339
原创 Quaternion.LookRotation()的用法,使物体朝向改变
Quaternion.LookRotation();传入一个向量值使物体朝向向量方向,使物体朝向另一个物体只需要传入两个物体Position之间的Vector3差值即可
2020-11-17 10:57:19
2654
原创 Unity3d随机数生成
random在生成随机数的时候是根据初始的时候随机数生成器生成的随机数序列进行生成的,默认情况下这个随机数序列是根据一个默认的种子进行生成的,每次生成的时候这个默认种子会发生改变,所以每次程序运行时生成的随机数是不同的,看上去就是生成了随机数。但是当指定随机数种子的时候,每次运行程序生成的随机数都会是相同的,这样生成的随机数不是真正的随机生成。可以使用random.Initstate((int)System.DateTime.Now.Ticks);来设置一个跟随系统时间变化的种子初始化随机数生成器,使初始的
2020-11-17 10:55:55
1010
原创 unity3d获取特定脚本组件的方法,也可通过这几个方法获取挂载特定脚本组件的物体
//括号内为false不获取隐藏物体,为true获取隐藏物体,默认值为falseGetComponentInChildren<Cube>();//获取当前物体以及他所有已激活的子物体的特定脚本中的第一个脚本,返回一个cube类型GetComponentInParent<Cube>();//获取当前物体以及他所有已激活的父物体的特定脚本中的第一个脚本,返回一个cube类型GetComponentsInChildren<Cube>();//获取当前物体以及他所有已激活的
2020-11-17 10:41:04
1826
原创 unity3d 脚本之间传递消息的几种方式
gameobject.broadcastmessage();//向当前游戏物体以及他所有已激活的子物体上的所有脚本广播消息 游戏物体之间耦合性低,游戏的拓展性较好。gameobject.BroadcastMessage("Attack", null, SendMessageOptions.DontRequireReceiver);gameobject.sendmessage();//向当前游戏物体的所有脚本发送消息gameobject.SendMessage("Attack", null, SendM
2020-11-17 10:35:39
919
原创 unity创建物体的三种方法
创建物体的三种方法第一种创建方法GameObject go = new GameObject("Cube");//括号里是物体的名字第二种 GameObject.Instantiate(prefab);//可以根据prefab 或者 另外一个游戏物体克隆第三种 创建原始的几何体 GameObject go = GameObject.CreatePrimitive(PrimitiveType.Cube);//括号里是物体的类型 go.AddComponent<Rigidbod
2020-11-17 10:32:55
1164
原创 time.timeScale
time.timeScale默认为1 改变timeScale的值,可以使time.deltatime按timeScale的值来倍数改变。经常使用time.timeScale=0来进行暂停(前提是场景中所有物体的运动都使用了time.deltatime)
2020-11-17 10:24:08
107
原创 Dictionary中按照下标取key
今天遇到一个问题,需要在Dictionary的固定下标位置取key和value,通过下面一段代码可以取到下标为i的元素的key,然后再通过key取value值Dictionary<string, string> dic = new Dictionary<string, string>();string[] keys = new string[dic.Count];dic.Keys.CopyTo(keys,0);string key=keys[i];...
2020-11-17 10:18:23
1123
unity-ugui-XCharts-master.zip
2020-09-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人