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

(197评价)
价格: 4431.00元

模型空间→世界空间→相机空间→屏幕空间

世界空间顶点=模型空间顶点*世界矩阵

相机空间顶点=模型空间顶点*世界矩阵*相机矩阵

[展开全文]
Shadow_DR · 2019-11-14 · 0

uniform vec2 _shear;
uniform vec2 _res;

out vec4 fragColor;
void main()
{
    vec2 uv = gl_FragCoord.xy/_res;//将坐标系改为0~1

    mat2 shaer = mat2(1,_shear.x,
                      _shear.y,1); //二维切变矩阵 此时_shear.x=-0.2 _shear.y=0
    uv *= shaer; //坐标与矩阵相乘


    vec4 outcol = texture(sTD2DInputs[0], uv);
    vec4 color = outcol;
    fragColor = TDOutputSwizzle(color);
}
 

[展开全文]
Shadow_DR · 2019-11-14 · 0

2D缩放矩阵[kx,0

                   0,ky]

3D缩放矩阵[kx,0,0

                   0,ky,0

                   0,0,kz]

[展开全文]
Shadow_DR · 2019-11-14 · 0

和差公式
sin(a+b) = sin(a)*cos(b)+cos(a)*sin(b)
sin(a-b) = sin(a)*cos(b)-cos(a)*sin(b)
cos(a+b) = cos(a)*cos(b)-sin(a)*sin(b)
cos(a-b) = cos(a)*cos(b)+sin(a)*sin(b)

旋转矩阵
点P.X=角度*cos*P的模长
点P.Y=角度*sin*P的模长
P角度=a
P1和P的夹角=b

P.X=r*cos(a)
P.Y=r*sin(a)
r=1

则P1的X点         = r*Cos(a+b)
根据和差公式得     = r*Cos(a)*Cos(b)-r*Sin(a)*Sin(b)
化简后得            = P.X*Cos(b)-P.Y*Sin(b)

P1的Y点            = r*Sin(a+b)
根据和差公式得   = r*Sin(a)*Cos(b)+r*Cos(a)*Sin(b)
化简后得            = P.Y*Cos(b)+P.X*Sin(b)

整理得
P1.X = P.X*Cos(b)-P.Y*Sin(b)
P1.Y = P.X*Sin(b)+P.Y*Cos(b)

矩阵写法
[x1,y1]=[cos(b),-sin(b),sin(b),cos(b)]*[x,y]

[展开全文]
Shadow_DR · 2019-11-14 · 0

RotX = [cos(a),sin(a),0

             -sin(a),cos(a),0

                 0,       0,     1]

 

RotY = [cos(a),0,-sin(a)

             0,1,0

                 sin(a), 0, cos(a)]

 


RotZ = [1,0,0

             0,cos(a),sin(a)

             0,-sin(a),cos(a)]

[展开全文]
Shadow_DR · 2019-11-14 · 0
protected override void mapBindings(){}

新建一个脚本名为Demo1ContextView,用于启动contextView,该脚本继承ContextView,继承后使用系统补全命名空间,并且将该脚本挂载到场景的空游戏物体上

新建另一个脚本Demo1Context作为contextView,该脚本继承自MVCSContext,同上

在Demo1ContextView中的awake方法里创建

this.context=new Demo1Context(this);//该方法需要传入一个monobhvs,而ContextView则继承自monobhvs,所以直接用this

该方法创建时会自动启动MVCS框架

 

在Demo1Context中实例化框架,这是其中一种实例化方法

public Demo1Context(MonoBehaviour view):base(view){}

实例化框架后需要进行绑定,覆写父类的绑定方法

protected override void mapBindings(){}

 

[展开全文]
风旅人 · 2019-11-13 · 0

被一个棋子攻击也是-delta*2,被两个棋子攻击,也是delta*2?

[展开全文]
emiyou · 2019-11-12 · 0

GetRelatedPos之前应该需要清空数组吧

[展开全文]
emiyou · 2019-11-12 · 0

foreach(Transform trans in transfrom)

trans是遍历transfrom所有的子物体,不包括自身

[展开全文]
流星online · 2019-11-12 · 0

这里为什么不用aChessStep的x、y

[展开全文]
emiyou · 2019-11-06 · 0

JudgeIfCheckmate,这样判断的话,有可能再GetKingPosition时,jiangX,jiangY并没有变化

[展开全文]
emiyou · 2019-11-06 · 0

数组是不是还没有初始化?

[展开全文]
emiyou · 2019-11-06 · 0

AddChess的第一个参数,感觉没必要传递,悔棋类自己维护就好了

[展开全文]
emiyou · 2019-11-06 · 0

空格也包括再不是中吧

[展开全文]
emiyou · 2019-11-05 · 0

可以不管这么多,直接遍历横竖的所有格子,判断一下行走是否合法。

这样代码会简单一些

[展开全文]
emiyou · 2019-11-05 · 0

这里又用了gameManager.chessBoard

[展开全文]
emiyou · 2019-11-05 · 0

这样会不会出现不能走的棋,却显示出可以走的位置。

比如两个将之间只有一个棋子的时候,本来这个棋子是不可以走动的

[展开全文]
emiyou · 2019-11-05 · 0

关于DataUtility类中的各种getUV方法的作用解释(与图集有关):

https://blog.csdn.net/weixin_30826761/article/details/98998277

[展开全文]
极光流刃 · 2019-11-04 · 0