- 博客(70)
- 收藏
- 关注
原创 Hello Triangle
在建模软件输出的obj格式的顶点数据以及法向量的分配,这些数据也是渲染管线的第一步的顶点数据。也就是下面的①号数据。
2019-02-27 23:04:53
210
原创 Hello Window(2)
获取用户键盘鼠标输入:首先声明获取输入函数//函数要声明在前面void processInput(GLFWwindow*window) { if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS) { glfwSetWindowShouldClose(window, true); }}然后调用此函数:while (!gl...
2019-02-26 10:23:05
172
原创 Hello Window(创建一个窗口)
首先检测搭建是否成功:#include<iostream>#define GLFW_STATIC#include <GL/glew.h>#include<GLFW/glfw3.h>int main() { glfwInit(); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);//使用的OpenGL...
2019-02-26 08:21:46
794
原创 Programming environment setup(环境搭建)
搭建OpenGL在vs的编译环境:下载glew和glfwglfw:https://www.glfw.org/(下载32bit)glew:http://glew.sourceforge.net/统一解压到一个工作盘(E),然后在vs里面进行环境搭建:新建一个空项目然后新建一个cpp项目;点击项目属性–》1.c/c++常规–》添加附加包含目录(将glfw和glew的include添加进去) ...
2019-02-25 09:29:39
197
原创 Split L/R Hands(左右手分离)
在子状态机中加对称的左手攻击;用bool(r0l1)判断左右手攻击(当判断为真的时候左手攻击,为假的时候右手攻击)
2019-02-25 09:10:49
179
原创 Attack Sub State(攻击子状态)
在animator下增加子状态机(攻击状态)可以指明跳到子状态机的具体哪一个或者把决定权交给子状态机;利用标签进行查核目前是不是运行到带有这种标签的状态,利用代码查核:修改actorcontrller的攻击系统: /// <summary> /// Attack /// </summary> public void OnAttac...
2019-01-31 09:39:13
331
原创 Auto Release Lockon(自动解除锁定)
实现当角色远离被锁物体一定距离的时候锁定解除:判断距离:unityAPI:Vector.Distance();增加这个判断当这个值大于某个距离的时候就取消锁定: public void Update() { if (lockTarget != null) { lockDot.rectTransform.position = Cam...
2019-01-24 10:17:46
311
原创 Relocate LocDot(重制lockdot)
利用半高点重新制作锁定点;比较好的情况是摄影机看角色的脚底 锁定点放在半高位置;锁定半高位置: public void Update() { if (lockTarget != null) { lockDot.rectTransform.position = Camera.main.WorldToScreenPoint(lockT...
2019-01-23 21:45:20
149
原创 Lockon Target Data Structure(lockontarget重置)
问题:1.锁定ui不能处在一个完美的位置(当被锁角色体积比较大的时候,要去计算他的中心点位置)2.当本身角色远离被锁定角色的时候,锁定ui的位置会发生改变。整理cameracontroller、里面的代码利用类以及构造函数重新声明lockontargetprivate LockTarget lockTarget;private class LockTarget { ...
2019-01-23 21:20:06
338
原创 Track Direction(追踪方向)
调整跳和翻滚:actorcontroller修改代码: private bool trackDirection = false;//追踪方向 //lockon状态判断 if (camcon.lockState == false) { if (pi.Dmag > 0.1f)//增加判断 如果按键时间大于0.1秒那么就不转回到前...
2019-01-23 20:40:56
249
原创 Lockon Logic#2(lockon逻辑2)
利用forward和right值从代码中进行控制动画播放。在代码中灌进去forwardheright值;在灌之前要进行判断(没有lock的状态就和以前一样)当处于forward的时候要重新进行计算值 if (camcon.lockState == false) { //坐标系计算+动画补间旋转 float targetRunMu...
2019-01-23 11:36:25
206
原创 2D Freeform Blend Tree(2D混合树)
将以前的1D混合树修改为2D混合树为了更好的演示lockon状态的动画;第二个2d混合树可以将他想香味手柄摇杆上面的点就是每个动画然后通过播放慢慢调试。...
2019-01-23 10:56:50
783
原创 Lockon Logic#1(lockon 逻辑)
当处于lonckon状态的时候模型应该只能面向被锁定物体。所以要在actorcontroller里面增加判断,当处于锁定状态的时候模型只能面向被锁物体: //lockon状态判断 if (camcon.lockState == true) { if (pi.Dmag > 0.1f)//增加判断 如果按键时间大于0.1秒那么就不转回到...
2019-01-23 10:32:13
216
原创 UI Lock Dot(UI Lockon 圆圈)
画一个圆圈在被锁物体上:新建一个UI修改cameraconctoller,using UnityEngine.UI;//取得ui类别 public bool lockState;//查看是否锁死 lockState = false;//在引擎里面显示是否被锁死 if (cols.Length == 0)//长度为0那么就是没锁过东西 ...
2019-01-22 12:56:53
231
原创 Successive Lockon(连续lockon)
问题:锁第一个人之后,想锁第二个人必须先解锁第一个人,这样不符合玩法逻辑,应该是锁第二个人的时候直接可以锁上,直接切换。所以应该修改代码逻辑:void FixedUpdate () { if (lockTarget == null)//如果没有锁东西那个么相机可以随便移动 { Vector3 tempModelEuler = modle.tran...
2019-01-22 12:36:55
146
原创 Lockon Overlapping Test(Lockon目标截取)
找到锁死的目标:使用unity的Physics.OverlapBox;红色的就是角色向前延申碰到的就是要锁的东西;判断是否碰到就是用overlapbox来判断;还要新增一个兴趣层级Enemty: public void LockUnlock() { if (lockTarget == null) { //try to lo...
2019-01-22 10:18:34
142
原创 Get Lockon Input(取得Lockon输入)
lockon模式:用右蘑菇头;要在edit里面接进来新增button9(右蘑菇头按下);在iuserinput里面新增bool lockon;在joystickinput里面声明以及实例化;在cameracontroller里面写一个方法(lockunlock)来控制是否lock; public void LockUnlock() { print("lockunlpock...
2019-01-22 09:21:59
220
原创 Long Press(长按功能)
1.实现长按功能:当用户按下后0.1s内不会有变化,0.1s后变化然后和普通按同时还原。如下图(橘黄色IsDelaying区域为长按,红色为正常按击,紫色区域为判断双击区域)增加MyButton代码:using System.Collections;using System.Collections.Generic;using UnityEngine;public class MyBut...
2019-01-21 11:53:23
9876
5
原创 Timer Class(计时器类别)
1.实现double trigger2.long press长按紫色的部分(IsExteding)是要侦测用户是否按下第二次1.double trigger:新建MyTimer时间类:
2019-01-20 13:00:48
1021
原创 Button Class(按钮类别)
代码整理:1.提供IsPressing信号,让其他模块或后续模块得知目前用户硬件输入状态。2.OnPressed 信号,提供…目前是否刚刚按下此按钮。3.OnReleased信号,…目前是否刚刚释放此按钮。在Assets目录下新建类程式码(MyButton)1.不继承MonoBehavier;写入三种状态以及两种判断状态。using System.Collections;using S...
2019-01-20 09:31:22
10432
1
原创 Mouse Input#2(鼠标输入2)
1.隐藏白色鼠标箭头2.增加鼠标左右键攻击模式3.LT和LB组成防御功能1:鼠标锁死不显示:在cameracontroller里面增加隐藏鼠标程式码(Cursor函数) //隐藏鼠标 Cursor.lockState = CursorLockMode.Locked;2.增加鼠标左右键攻击模式:在keyboardplayerinput里面直接修改(鼠标...
2019-01-19 13:02:09
278
原创 Mouse Input#1(鼠标输入1)
在keyboardinput里面新增header(Mouse settings)新增鼠标控制选择(当勾选的时候,鼠标可以控制jup和jright);程式码中增加判断条件可以进行切换,增加控制鼠标灵敏度。代码: [Header("==== Mouse settings ====")] public bool mouseEnable = false; public floa...
2019-01-19 12:44:52
841
原创 Add Defense State(新增防御状态)
增加举盾动作:新增一个Layer(defense)将权重托满再将lefthand托给mask拖一个举盾和idle动画》》增加一个bool判断条件(上钩的时候举盾,消勾放松)》》这时候OnAnimatorIK的修复代码会产生影响,需要增加判断条件。然后利用程式码套接到手柄控制:IUseInput: public bool defense;JoystickInput: public s...
2019-01-18 13:04:32
155
原创 Add Shield(新增盾牌)
在手腕或者手肘下面新增空对象(weaponhandle)下面新建一个cube盾牌,再调的时候注意穿模问题;当你的盾牌加上去之后,会出现问题:当你在待机状态的时候盾牌是在防御状态的,这时候就需要让美术师调整模型,或者里用程式码微调模型;利用程式码调整动画:IK Pass(当你上勾的时候引擎才会帮你调用OnAnimatorIK() )在Base Layer上将IK Pass勾选 增加LeftArm...
2019-01-18 09:19:56
422
原创 Camera Jitter Fix(摄像头抖动修正)
优化用户体验:当人物移动的时候移动摄像机时候会一卡一卡的,摄影机不稳,问题来自于cameracontrollor,解决办法:利用代码使人物的颈椎固定在屏幕某一点, camera.transform.position = Vector3.SmoothDamp(camera.transform.position, transform.position, ref cameraDampVeloci...
2019-01-17 19:59:00
1407
原创 Abstract Class Useer Input(抽象类别)
新建IUserInput:把一样的东西抽出来,将playerinput从Iuserinput继承过来,并将保护级进行修改joystick input类似操作修改后代码:IUserInput:using System.Collections;using System.Collections.Generic;using UnityEngine;public abstract class ...
2019-01-16 21:16:57
162
原创 Trial Design for Joystick Input(手柄类别测试2)
套接跑跳:run = Input.GetButton (btnA ); bool newJump = Input.GetButton(btnB); //jump = tempJump; if (newJump != lastjump && newJump == true) { jump = ...
2019-01-16 20:35:07
229
原创 Trial Design for Joystick Input Class#1(手柄类别测试1)
把键盘鼠标承接到手柄:首先按照键鼠controller定义查找名称 然后按照键鼠控制器逻辑写两个蘑菇头的控制代码:using System.Collections;using System.Collections.Generic;using UnityEngine;public class JoystickInput : MonoBehaviour { [Header("Jo...
2019-01-15 19:13:14
206
原创 Assign Jostick(配置手柄)
创建一个新的项目来进行调试:在main camera下面挂一个测试程式码 在update里面:void Update () { print(Input.GetAxis("Horizontal")); }当你摇动左蘑菇头的时候会console浮点数其他以此类推...
2019-01-12 19:02:01
309
原创 Mirror Animations(动画水平镜射)
将右手攻击转化成左手攻击:新增一个武器便于区分:找到righthand新增空物件weaponhandle将他拽到虎口位置增加一个cylinder。在attack1hA里面就有mirror上勾,然后里用程式码控制,上勾mirror的parameter(接受bool值),增加一个bool(mirror)。...
2019-01-05 22:24:14
638
原创 Handle Root Motion by Script(利用程式码叠加root motion)
第三段攻击没有向前移动unity API:unity onanimatormove():会在整个状态机算完一次呼叫一次,有什么不满意可以在它里面修改。在ybot下面挂rootmotioncontrol:public class RootMotionControl : MonoBehaviour{ private Animator anim; void Awake() ...
2019-01-05 14:14:09
634
原创 Rest Attack Trigger using Animation Events(利用代码重设trigg)
实现第一段攻击马上完成的时候才能接受第二段攻击的指令没有那么容易触发二连击:首先在动画的适当位置增加一个event做reset trigger吐出来的string设为attack,然后再ybot上面挂一个程式码:public class TriigerControl : MonoBehaviour{ private Animator anim; void Awake() ...
2019-01-05 10:55:40
169
原创 Add Attack C State(新增攻击状态)
新增第三段攻击:增加第三段攻击和增加第二段攻击一样 注意两段攻击的过渡。这样会有不当累计的问题出现。
2019-01-04 20:25:52
264
原创 Lerp Layer Weight(动画权重线性内插)
问题:动画还原僵硬,权重移动太剧烈。需要做一个缓动。通过代码控制权重: private float lerpTarget;//权重 public void OnAttackEnter() { pi.inputEnabled = false; // lockPlanar = false; lerpTarget = 1.0f; ...
2019-01-04 20:11:40
880
原创 Add Attack B State(新增攻击状态)
新增一个攻击:将第二段攻击拖入动画面板,给一个转态从attack1hA转到attack1hB(exit time不能消勾 因为要做完第一段攻击才能触发第二段攻击) 给一个转换条件attack;attack1hA的转态顺序优先转换到attack1hB;然后修改过渡。这样就可以实现基础的二段攻击。...
2019-01-04 19:17:23
183
原创 Change Physice Materials(更换物理材质)
bug:在角色跳到斜坡边缘的时候会卡在斜坡边缘一直做滑翔动作。因为当你在空中的时候角色会因为这段代码一直给一个向前的速度,这样会使角色和斜坡面之间有一个摩擦力。所以要解决这个问题就要修改摩擦力修改预设材质:在根目录新建一个physic material(frictionOne)将动摩擦和静摩擦给为1Dynamic Friction:动摩擦Static Friction:最大静摩擦Boun...
2019-01-03 10:23:48
264
原创 Add Flag to restrict Attacking Condition(用旗标限制攻击条件)
问题:角色跳到一半可以挥刀,翻滚到一半的时候也可以挥刀,所以要限制攻击条件增加程式码:private bool canAttack;//增加一个判断if (pi.jump) { anim.SetTrigger("jump"); canAttack = false;//跳跃时锁定攻击 } //添加...
2019-01-01 10:30:14
121
原创 Attack State Slight Movement(攻击状态)
问题:在攻击的时候角色可以移动(溜冰一样)利用和翻滚类似的程式码写出锁死地面,在利用曲线修改动作流畅度:public void OnAttackEnter() { pi.inputEnabled = false; // lockPlanar = false; anim.SetLayerWeight(anim.GetLayerIndex...
2018-12-31 10:39:10
373
原创 Adjust Layer Weight by Cods(使用代码修改动画层权重)
实现用代码控制动画层级的权重:在attack1hA和idle上面分别挂OnAttackEnter和OnAttackIdle脚本 public void OnAttackEnter() { anim.SetLayerWeight(anim.GetLayerIndex("attack"), 1.0f);//用查找层级索引的方法修改层级的权重 } public...
2018-12-31 10:00:25
1009
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人