Unity WVParallax 2D 视差效果雷竞技官网上ray666点vip

文件:WVParallax.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// Weiva Parallax
/// 2D 视差效果
/// 本雷竞技官网上ray666点vip背景视差效果是根据背景雷竞技苹果下载地址的世界坐标z值来计算。默认参数中的背景数组第一个元素为最远平面,
/// 既与摄像机同步的平面,该雷竞技苹果下载地址之间的背景根据z值进行视差计算。也可以单独设置参数 synZ 强制设置最
/// 远平面。大于最远平面的 z 值将会反超摄像机移动。
/// weivain@qq.com
/// www.weiva.com
/// </summary>
public class WVParallax : MonoBehaviour {

    [Header("背景图片雷竞技苹果下载地址,Element 0 为与摄像机同步的背景层")]
    public Transform[] backgrounds;

    // 主摄像机
    private Transform cam;
    // 上一帧摄像机的位置
    private Vector3 previousCamPos;
    // 摄像机同步背景层的 z 值
    [Header("摄像机同步背景层Z值,若0为背景层0")]
    public float synZ=0f;
    [Header("偏移x系数")]
    public float parallaxScaleX=1f;
    [Header("偏移y系数")]
    public float parallaxScaleY=1f;


    // 初始化
    void Start ()
    {
        cam = Camera.main.transform;
        // 上一帧摄像机的位置
        previousCamPos = cam.position;
        if(synZ == 0 && null != backgrounds[0])
        {
            synZ = backgrounds[0].position.z;
        }
        if(synZ == 0)
        {
            synZ = 100f;
        }
        
    }
	
	// 每一帧执行
	void Update ()
    {
        // 获得摄像机和上一帧的偏移值
        float parallax = previousCamPos.x - cam.position.x;

        //摄像机偏移矢量
        Vector3 camMove = cam.position - previousCamPos;
        camMove.x *= parallaxScaleX;
        camMove.y *= parallaxScaleY;

        //同步背景
        for (int i = 0; i < backgrounds.Length; i++)
        {
            if (null == backgrounds[i]) continue;

            Vector3 targetToMove = backgrounds[i].position + camMove * (backgrounds[i].position.z/synZ);
            backgrounds[i].position = targetToMove;

        }

        // 更新上一帧摄像机的位置
        previousCamPos = cam.position;
    }
}


Unity 系统自带的 2D 角色资源预制体 CharacterRobotBoy 填坑日记

CharacterRobotBoy预制体确实是很好用的东西,但是要想以此为基础改成自己的东西还有一些容易犯错的地方:

  1. 角色是使用动画状态机控制,根据 Speed,vSpeed,Crouch,Ground 的值进行控制。
  2. 角色隐藏有两个点,天花板触点 CeilingCheck,GroundCheck要防止对,特别是在做动画时,不要让这两个点跟着跑了,否则容易出现永远掉不到地面等情况。
  3. 蹲下时要注意:一是上半身的盒型碰撞器要缩小,并放矮一些,也就是让角色蹲下时避免碰撞,能够通过地道。二是盒型碰撞器蹲下时不能与圆形碰撞器发生碰撞,否则会判定为顶上有东西,无法接触下蹲的状态。这个比较让人产生疑惑,应为案例中,初始状态这两个碰撞器是重叠的。
  4. 示例的机器人蹲下时,CeilingCheck 反而不用改变位置。但是自己做的时候要注意,如果蹲下时,头顶的 CeilingCheck 不处于“顶着”的碰撞物体内(例如很薄的地面在头上)就有可能出现蹲在地道里也可以站立的错误。解决办法是蹲下时,也让 CeilingCheck 下移一些,但是也不能太多,视具体情况。
  5. 动画机 Crouch 至 CrouchWalk 有一定的过度,并且 CrouchWalk 至 Crouch 是双过度(是双Transitions,不是双条件)。
  6. PlatformerCharacter2D类方法FixedUpdate 的42行建议加上:
    if (colliders[i].gameObject != gameObject && !colliders[i].isTrigger)
    否则角色可以在触发器上跳跃。

关于Adobe Animate CC的一些观点

Adobe Flash 于2016年2月正式更名为Animate,简称AN。嗯,对的,就如前几年大家都说的那样,Flash时代终结了。但,其实,并不像许多人所像的那样:Flash彻底消失。其实,Adobe 真正的阴谋也许并不被太多人关注。

Flash之前被认为走向衰落的几个问题:1、播放器Bug太多;2、H5将取代网络动画标准;3、苹果和安卓的不支持。这些问题的确导致Flash在网络动画领域迅速衰落,但是,却忘了Flash其实是“动画制作软件”,不是网络输出软件。Flash播放器的出现时为了弥补过去Html的不足。那既然现在H5很牛,那对于Adobe来说反而是好事,不用再自己做播放器了,直接将Flash导出H5就可以了。实际上,这也就是在Flash 进入CC时代以后,Adobe一直在做的事。改名为Animate,只不过是告诉你,重点是动画。另外,Animate在普通视频动画制作领域就不用说了,跟“Flash灭亡说”一点关系没有。

AN(Adobe Animate)目前发展方向还是正确的,4年前我写的一篇论文中就预测了当前这样的情况,H5并不是Flash的克星,“Flash灭亡说”只是一个多方利益恩怨交错而出现的错误说法。其实,真正深入了解Flash与H5的人可定一眼就看出来了,只是大众的舆论太火,许多人只是跟风,视乎不知道Flash过时就不像搞IT的一样。也有学生跟我说,我们学校怎么这么落后,还在教Flash?我倒是希望看到一款动画制作软件功能和易用性能够超越Flash的。在看看今年大广赛,绝大多数动画类作品还是swf格式。

不过,现在Animate导出动画甚至互动内容到H5还是不太完美,发展进度还比较慢(其实动画导出已经很完美了,只是互动内容因为as与js兼容性问题,比较复杂),这有很多方面的原因,首先H5其实自身是有许多问题的,H5的交互核心是js、canvas、webgl,抛开Animate不谈,常规的H5动画制作方式是使用Html+js的方式,使用这种方式简直就是让美工去学微积分。另外一种H5制作方式是在线H5平台,例如Maka、iH5、易企秀等等,但是这些平台的动画制作能力跟Animate比都不是一个级别的。其次,毕竟H5是一种开放的通用网页标准,其设计的目的也不是专门针对动画,所以,要实现将Animate里的动画和交互内容完美导出到H5中,还需要时间。

目前,Animate已经支持将动画导出为Html Canvas动画以及Html WebGL动画(还是预览功能),我进行了简单测试,动画方面基本上都没问题,交互方面还有待增强。在2016年8月份的更新中,导出 Html Canvas 已经能够实现自动全屏、缩放,实用性极大增强。另外,Animate导出Html Canvas使用了CreateJS库,如果懂得JS,掌握这个库的用法,可以完全不用等Adobe更新,自己动手写JS就可以实现更强大的功能。

第八届大广赛互动类参赛攻略

一、参赛技术要求分析

1、作品技术标准

仔细阅读参赛指南,逐条对比,例如:分辨率、尺寸

 

2、大广赛的提交必须使用【发布后的链接】
在案例中点击“发布”:
然后在“我的作品-已发布”中,获取链接和二维码:
QQ图片20160615110035

链接可以直接复制,二维码可以截图后保存。
请一定要注意这一点!
3、评审环境
在台式计算机上
鼠标操作
网络环境
移动设备问题:触摸、倾斜、旋转
4、在线制作平台问题
高峰时期速度慢
浏览器兼容问题

二、正确认识iH5与Html5的关系

两种极端的观点:

A:iH5(企业秀、Maka等)好炫啊,馊伊叽~~!原来这就是H5,哪用什么代码,我就要成为H5大师了。
B:iH5(企业秀、Maka等)都是什么鬼渣渣~坚决不用,Html、CSS、JS才是王道!

三、iH5平台互动内容制作

  1. 简单的制作思路
    从简单的平面系列画面开始,制作滑动页面
    简单的动画控制,iH5当中的三种动画类型,动效是比较容易使用和控制的一种类型
    简单的交互,点击后发生一些事情
    在交互设计时,要进行技术层面的可行性实验
    重要的原则:把技术玩到极致也是创新,但是,技术只是服务你的创意,不要为了玩弄技术而用技术
  2. 内容结构体系
    雷竞技苹果下载地址(类与实例)
    属性
    关系
  3. 事件————交互系统的关键要点
    行为————交互的来源于目的
    雷竞技苹果下载地址-触发-雷竞技苹果下载地址-行为
  4. 物理引擎

 

 

 

2015年全球广告学协同形成的新广告定义

Advertising is paid, owned and earned media communications from an identifiable brand, intent on persuading the consumer to make some cognitive affective or behavioural change, now or in the future.

广告是由一个可确定的品牌,利用付费媒体、自由媒体或者可拥有的媒体,意图劝服消费者在现在或者将来形成认知、感情或者行为上的改变的传播。

(来源:2015年全国广告教育会,2015年9月25日,具体会议名称未知)

zend framework 2 学习笔记:定义自己的日志,记录到数据库中

需求:定制自己的日志系统,本例假定指定存储到Mysql数据库当中。

通常的web我们可以 echo,或者IDE的debuger调试程序,但是有些特殊情况,例如php与android、unity3d等前端通讯时,传统方式并不方便,所以,需要把日志输出到其他地方便于查看。
* zf2中可以通过指定不同的 Zend/Log/Writer 来使用不同的日志记录方式。

下面开始动手了
为了便于在系统中重复使用,我将Logger放到 App 的 Service 中,以后只要在需要的时候,从 Service 中取出就可以用,如果完全没使用,也不会对速度有影响。

在文件 module/Application/Module.php 中:
头部引用包:

use ZendLogLogger;
use ZendLogWriterDb as WriterDb;

在 Module 类中,加入自定义 Service:

public function getServiceConfig(){
        return array(
            'factories'=>array(
                'WLogger' => function($sm){
                    $dbAdapter = $sm->get ( 'ZendDbAdapterAdapter' ); //需要指定你自己的数据库适配器
                    //对接数据表字段
                    $mapping = array(
                        'timestamp' => 'time',
                        'priority'  => 'type',
                        'message'   => 'message'
                    );
                    $writer = new WriterDb($dbAdapter, 'log_table', $mapping); // log_table 是你自己的日志数据表
                    //$writer = new ZendLogWriterDb($dbAdapter, 'log_table', $mapping); //这样会报错
                    $logger = new Logger();
                    $logger->addWriter($writer);
                    return $logger;
                }
            )
        );
    }

添加日志表到你的数据库中:

--
-- 表的结构 `log_table`
--

CREATE TABLE IF NOT EXISTS `log_table` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `type` varchar(255) DEFAULT NULL,
  `message` text,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT='日志库' AUTO_INCREMENT=1 ;

如何使用?:

$logger = $this->getServiceLocator()->get('WLogger');
$logger->info('记录一条日志');