Unity学习笔记

  • Componet 决定了GameObject的行为
  • 一个空的GameObject 就只有一个默认的Component,就是Transform 。Transform控制GameObject的位置Position,方向Rotation,比例Scale
  • 点MainCamera 会出现CameraPreview(Camera所拍摄的内容=Game的内容)
  • 运行中可改变对象的属性,但一旦停止运行就会回到场景原来的布局
  • Texture 纹理,本质
  • 右击Assets—>Show In Explorer 可显示在磁盘中的目录情况(找其所在位置)
    (可以在目录中增加东西,但删或者移动最好在Unity中进行)
  • Material 材质 Create—> Material
    将创建的"Material"赋给GameObject的Material
  • GameObject的父子关系
  • Prefabs 预制的(相当于模板)
    再拖入场景有Revert 恢复、 Apply应用
    其中应用是改变了Prefab,所以所有与该Prefab有关的GameObject全改变
  • 打包:File——>BuildingSetting将所要打包的东西打包——>AddOpenScenes加入所要打包的东西
  • Material的Shader(着色器)
  • Window下的AssetStore可找Unity的资源
  • Import 导入 export 导出
  • 蓝色字的是有Prefab的
  • GameObject的MeshRendered(网格渲染器),打对勾就能看见,不选就看不见
    MeshRendered的Materials属性
    将Texture赋给Material,Material赋给GameObject
  • Collider 碰撞机
  • MainCamera的Camera的Projection有Perspective(近大远小3D)和Orthographic(远近相同2D)
  • 在Unity里凡是能挂在GameObject上的都是Component(组件)
  • Script(脚本)也可作为一个Component,Script要想挂在GameObject上就必须继承MonoBehavior
  • Unity如何通过脚本来驱动游戏?
    • Instantiate()创建GameObject
    • 通过Awake()和Start()来初始化
    • Update,LateUpdate,FixedUpdate更新逻辑
    • (用OnGUI绘制UI
    • OnCollisionEnter等进行物理计算
    • OnPreCall等来控制渲染)
  • 如何更新逻辑?
    场景启动时调用所有脚本的Awake()

    调用所有脚本的Start()

    调用Update()(每帧调一次)
    ⬇ Update调用完后
    调用LateUpdate()(每帧调一次)

    调用FixedUpdate()(一帧调几次)
  • 对象销毁
    调用Destroy销毁GameObject
    销毁对象时调用OnDestroy
  • 脚本间的通信
    通过GetComponent 找同一物体上的其他脚本
    通过GameObject.Find 找其他物体
  • 游戏输入:
    • 键盘:
      ①Edit——>ProjectSetting——>Input设置游戏输入
      ②在脚本中利用Input类来检测输入状态
      ③Input.GetAxis返回的值是-1~1之间,0表示没输入 eg.Player.cs
      • InputManager里:Horizontal 水平的 、Vertical 垂直的
      • Horizontal:
        • Name 名字 (脚本要用到)
        • NegativeButton:负键 eg.值为left:左键头代表作负方向的运动
        • PositiveButton:正键
        • Alt NegativeButton:备选键
        • Alt PositiveButton:备选键
    • 鼠标 eg.SceneCamera.cs
    • 手机输入(触摸屏)Input.touch…之类的
  • 模型 动画 (.FBX)
    • Inspector下的Rig中的
      • Animation Type(动画类型)有三种①Legacy(旧动画系统已不推荐使用)②Generic(类的、属性的)③Humanoid(人体形态的动画)
      • Avatar Definition(Avatar的定义)(Avatar就是一个像木偶一样的东西)
        CreateFromThisModel:本模型的 CopyFromOtherAvatar:别的模型的
    • RIg下的Animation(动画)
      • ImportAnimation 不选就没有动画的导入,选上就会导入
      • Clips 内是包含的小动画 。其中的start和end是开始的帧到结束的帧
        • LoopTime ✔(循环播放)
    • 动画已经都有了还需要应用动画,在需要加动画的“GameObject”添加Animator组件,
    • Animator组件内有:
      • Avatar :
        Avatar模型
        将Avater模型赋到该选项下Animator
      • Controller:状态机(Create——>AnimatorConroller)
        状态机Move
        将move赋给Controller选项下
        Animator
        • 状态机:在某种状态下做的动作,一个物体同时只具有一个状态,状态之间可以切换
          • 状态机的三个基本要素:状态 、Transition(状态转换的过程(从一个状态到另一个装态))、Parameters(参数)
            • 这是一个Animation动画Animation动画
            • 这是一个Controller状态机Controller状态机
            • Controller包含多个Animation(动画)也叫状态。可直接将Animation拖进去
          • 状态机内容
            • 橙色的部分代表默认状态(状态机的起始的状态,也可以更改:右击——>SetAsLayerDefaultState)
          • 建立Transition:右击——>MakeTransition
            建立Transition的Condition以及脚本的应用
            eg:PlayerAnimation.cs
            -AnyState
      • ApplyRootMotion ✔ 动画会影响你的GamdeObject的位置,不勾选则不会影响
  • 动态的生成和销毁一个物体
    • 动态生成物体:就是把一个prefab做成模版,在运行时调用Instantiate函数用prefab生成一个实例(GameObject)放在场景中,如果不需要的时候就调用Destroy函数将GameObject销毁掉。
    • 但来回生成和销毁,性能开销会很大。所以一般会设个缓存(cache),当不需要的时候放cache里,需要的时候再拿出来
    • OnEable()在一个物体或者C omponent被设为active时,OnEable这个事件就会被触发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值