从这里开始,前面的准备工作差不多完成了,剩下的就是游戏逻辑的工作了。
从这里开始,前面的准备工作差不多完成了,剩下的就是游戏逻辑的工作了。
标记,到此还没做。。。
Physics Raycaster+IPointerClickHandler组合
public void RemoveFlag()
{
Transform flag = transform.Find("FlagElement");
if (flag != null)
{
elementState = ElementState.Covered;
flag.DOLocalMoveY(0.15f, 0.1f).onComplete += () =>
{
Destroy(flag.gameObject);
};
}
}
使用DoTween做插旗拔旗的操作时,在完成时用Lambda表达式的方式去开启一个协程来销毁对象
第五课时item
public int ID{get;set; }:方便访问权限
属性类名一般大写
注意:enum的访问权限问题
牛逼,竟没有卡成狗
解决UI和3D物体同时响应的问题。
在ColliderUI代码里面加上:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class ColliderUI : MonoBehaviour ,IPointerClickHandler{
private int _index;
// Use this for initialization
void Start () {
}
public void ChangeColor()
{
if (_index == 0)
{
GetComponent<Image>().color = Color.blue;
}
else {
GetComponent<Image>().color = Color.white;
}
_index = _index == 0 ? 1 : 0;
}
public void OnPointerClick(PointerEventData eventData)
{
ChangeColor();
// ExecuteAll(eventData);
}
public void ExecuteAll(PointerEventData eventData) {
List<RaycastResult> results = new List<RaycastResult>();
EventSystem.current.RaycastAll(eventData, results);
foreach (RaycastResult result in results) {
if (result.gameObject != gameObject)
{
ExecuteEvents.Execute(result.gameObject, eventData, ExecuteEvents.pointerClickHandler);
}
}
}
}
···
方向光和点光源有cookie
其他的光没cookie
延迟渲染先从屏幕空间转齐次裁剪空间,再转世界空间
代码中赋值的时候有点问题
//contentLength = scrollRect.content.rect.xMax-2*leftOffset-cellLength;
//contentLength = 3000-2*300*-1100=1300;
//oneItemLength = cellLength + spacing=1100+400=1500;
oneItemProportion = oneItemLength / contentLength;
这样的话oneItemProportion就始终大于1了。移动的时候要么就是第一页,要么就是最后一页。
我手动把oneItemLength改成2000.oneItemLength改成1000后就没问题了
我脚本搭载到ScrollView上的
下节课客户端NetMsgCenter脚本Awake方法里面的clientPeer定义成全局的!!
感觉成员变量多的不行了
总感觉成员变量重复了很多,哭了
单元测试
在unity中创建(Create/Testing/c# Test Scripts)
断言(Assert)
开发、课程管理
内容:
技术点:
引导:
无论是 lua 系列热更 还是 C# 系列热更,ILRuntime,他们都是基于代码的热更。
网格重建,如果在同一个canvas下创建了很多的UI面板,修改其中一个image的颜色,都会重建所有的网格
渲染队列的概念
UI为什么会费性能
首先,透明物体最重要的概念是,不会写深度,正常物体在深度写入后会起到优化的作用,因为系统会先渲染前面的物体,而后面被遮挡的物体则不会再进行渲染,半透明物体一般是从后向前渲染,会先将后面渲染一次,再将半透明物体渲染一次(也就是OverDraw增加的原因)
UI系统生成的东西全都是从后向前的渲染,所以UI会存在优化的原因,当我们有大量的UI时,就需要进行优化。
怎么优化?
渲染队列的概念是什么?
1、做UI优化必然会牵扯到渲染
概念一 深度测试
前后关系,两个模型的深度分别是怎么样的
缓冲区:颜色缓冲区保存颜色,深度缓冲区保存深度(和相机的距离)
Zwrite on(深度写入)
ZTest Alway(深度写入)alway代表一直写入