Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(197评价)
价格: 4431.00元

看到这里,总算明白strange怎么用了

[展开全文]
高伟程 · 2020-01-17 · 0

刘刚讲的视频花一小时看完了,讲的不错啊,搞项目时,里面有不少东西可以借鉴;

[展开全文]
高伟程 · 2020-01-11 · 0

刘刚讲的视频花一小时看完了,讲的不错啊,搞项目时,里面有不少东西可以借鉴;

[展开全文]
高伟程 · 2020-01-11 · 0

使用observable.Start(()=>{})可以启用线程

由于协程和线程都有oncomplate,所以都可以使用whenAll

observableOnMianThread,意思是把whenall结果转到主线程上,subscribe的回调就可以使用unity的API了

[展开全文]
风旅人 · 2020-01-10 · 0

everyupdata()没有oncomplate生命周期,所以无法使用回调

[展开全文]
风旅人 · 2020-01-10 · 0

使用unitx开启协程

Observable.FromCoroutine(_=>A());

 

[展开全文]
风旅人 · 2020-01-10 · 0

留个记录,没继续往下看,老师的看不懂了,然后,然后,我自己写出来了第一节课中演示的功能。

[展开全文]
高伟程 · 2020-01-08 · 0

优化代码如下,实测有效

public void ChangeBlenderShapeValue(string blenderShapeValue,float value)
    {
        if (!blenderShapeDatabase.ContainsKey(blenderShapeValue))
        {
            Debug.LogError("输入有误");
            return;
        }

        BlenderShape blenderShape = blenderShapeDatabase[blenderShapeValue];
        if (blenderShape.PositiveIndex < 0 && blenderShape.NegativeIndex < 0)
        {
            Debug.LogError("字典读取有误");
            return;
        }
        if (blenderShape.PositiveIndex<0||blenderShape.NegativeIndex<0)
        {
            value = Mathf.Clamp(value, 0, 100);
            Target.SetBlendShapeWeight(Mathf.Max(blenderShape.PositiveIndex, blenderShape.NegativeIndex),value);
        }
        else
        {
            value = Mathf.Clamp(value, -100, 100);
            if (value>=0)
            {
                Target.SetBlendShapeWeight(blenderShape.PositiveIndex,value);
            }
            else
            {
                Target.SetBlendShapeWeight(blenderShape.NegativeIndex, -value);
            }
        }

[展开全文]
高伟程 · 2020-01-08 · 0

observable支持转换为yield对象

IEnumerator Delay1Second(){
  yield return Observable.Timer(TimeSpan.FromSeconds(1.0f)).ToYieldInstruction();
}

 

[展开全文]
风旅人 · 2020-01-08 · 0

.select()是一个泛型,根据返回的值类型决定

[展开全文]
风旅人 · 2020-01-07 · 0

unirx可以开启多条事件流,多个事件流可以通过merge进行事件流和并

[展开全文]
风旅人 · 2020-01-07 · 0

button.interactable是一个布尔类型的值,设置为false则表示这个button不可以交互,即不可点击

[展开全文]
风旅人 · 2020-01-07 · 0

reactiveproperty<>不能序列化

intReactiveproperty 可以进行序列化

[展开全文]
风旅人 · 2020-01-07 · 0

drag事件需要成对出现有begindrag、drag、enddarg,否则会不生效

[展开全文]
风旅人 · 2020-01-06 · 0

.first()获取第一个通过的事件,括号内可以添加条件进行过滤

[展开全文]
风旅人 · 2020-01-06 · 0

.everyupdate()是一个事件源,每帧调用一次,会发送一个事件

Subscribe是事件接收者,接收everyupdate发送来的事件

.where()会把不符合括号内条件的事件过滤,符合则执行subscribe

事件本身可以是参数,但everyupdate本身没有参数,所以在where中不需要接收参数,括号内用_变量来表示不含参。

[展开全文]
风旅人 · 2020-01-06 · 0

AddTo用于生命周期绑定,当这个函数的生命周期结束时就解绑删除

[展开全文]
风旅人 · 2020-01-06 · 0

observable是一个事件流,可以调用unity的生命周期

[展开全文]
风旅人 · 2020-01-06 · 0

单例(非线程安全)

private static PoolManager _instance;
public static PoolManager Instance{
  get{
    if(_instance==null){//判断是否已经创建过这个单例
      _instance=new PoolManager();
    }
    return _instance;
  }
}

private PoolManager(){}//单例的构造方法
public Init(){}

可以在StarCommand中初始化pool

[展开全文]
风旅人 · 2020-01-06 · 0

创建配置文件不能直接new,需要使用

GameObjectPoolList poolList=ScriptableObject.CreateInstance<GameObjectPoolList>();

来创建

AssetDatabase.CreateAsset(pooList,"Assets/Framework/Resources/gameobjectpool.asset");
AssetDatabase.SaveAsset();

将配置文件保存至xxxx路径,使用saveAsset方法保存

[展开全文]
风旅人 · 2020-01-03 · 0