//对象池
Laya.Pool.getItemByCreateFun("PlayerBolt",)
//对象池
Laya.Pool.getItemByCreateFun("PlayerBolt",)
onTriggerEnter(other){
}//触发检测执行
//创建物体的预制体
Laya.Sprite3D.instantiate(bolt_Player)
//激活(显示)物体
bolt_Player.active = false;
所需能力:
如何去提升这些能力,从哪方面去提升?
希望做哪些品类的游戏
编辑器下资源回收需要置空所有引用
在原生的opengl中,所谓深度测试指的是,当前绘制指令里待绘制的所有点,其投影在屏幕上的前后覆盖关系是否受点的z坐标影响。
举同一帧内两条绘制指令的例子。
glenable(gl_depth_test)
glbegin()
绘制三角形A
glend()
gldsiable(gl_depth_test)
glbegin()
绘制三角形B(B的z坐标比A更远)
glend()
绘制B前面有gldisable(gl_depth_test)
所以B的绘制其与A的关系不再受z坐标影响,所以视口窗口里B会在A前面,如果我没有gldisable(gl_depth_test)这一句,那么A就会在B前面。
这跟什么colorbuffer,什么颜色缓冲区的关系扯得太远了。这都是固定管线时代就已经有的内容了……
//Vector3 m_target = m_go2.transform.position;
//m_go1.transform.Translate((m_go2.transform.position - m_go1.transform.position).normalized * Time.deltaTime, Space.World);
//m_go1.transform.position = new Vector3(Mathf.Clamp(m_go1.transform.position.x, m_go1.transform.position.x, m_target.x), Mathf.Clamp(m_go1.transform.position.y, m_go1.transform.position.y, m_target.y), Mathf.Clamp(m_go1.transform.position.z, m_go1.transform.position.z, m_target.z));
private void Update()
{
//if (timer <= 1)
{
m_go1.transform.Translate(Vector3.right * 2 * Time.deltaTime);
Vector3 viewPos = Camera.main.WorldToViewportPoint(m_go1.transform.position);
if (viewPos.x >= 1f || viewPos.x < 0.0 || viewPos.y >= 1f || viewPos.y < 0.0)
{
m_go1.transform.position = oldPos;
return;
}
oldPos = m_go1.transform.position;
timer += Time.deltaTime;
}
}
哟,看样子你很yong
三年起步,最高死刑。
这个歌很好听啊。。。歌曲名称叫啥啊?
build项目的时候,出错误,要删xlua中的example文件夹
从这里开始,前面的准备工作差不多完成了,剩下的就是游戏逻辑的工作了。
标记,到此还没做。。。
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);
}
}
}
}