GAMESH

游戏美术动画unity资源搬运工!

剧情党,完美控!
桐崎千棘
当前位置:首页 > 学习 > 正文内容

UNITY自学总结

admin10年前 (2015-03-02)学习31941

GameObject

1. GameObject.transform   表示获得游戏的对象

 

2. GameObject.camera      表示获得相机的对象

 

3.GameObject.GetComponent   表示获得指定组件

 

4.GameObject.AddCompoent     表示添加指定组件

 

 

Transform

 

position

rotation

localScale

Translate

Rotate        分别实现对象的位置、旋转角度以及放大或缩小、平移、相对于某坐标旋转

 

 

Input.GetAxis() 与 Input.GetAxisRaw()

 

Input.GetAxis("Vertical")        表示上下移动

Input.GetAxis("Horizontal")    表示左右移动

 

 

解读Upadte、LateUpdate、FixUpadte

 

unity3d 运行时 最先运行 FixUpadte,然后运行 Upadte,最后运行 LateUpdate.

 

 

 

 

 

1.如何导入、执行外部动画

在项目窗口中,首先,单击选择我们所准备的动画模型,在属性面板中选择Animations栏,
在属性中点击“+","-"可以增加和删除动画片段,
而在Start以及End中,可以分别设置每一个动画片段的开始帧数及结束帧数。
下面是我自己动画做的一个分解:
Idle:表示我动画中的准备动作。
Aim:表示我动画中的瞄准动作。
Fire:表示我动作中的投篮动作。

1.jpg (54.1 KB, 下载次数: 0)

下载附件  保存到相册

2013-6-5 09:55 上传



当上面动画片段设置好以后,我们用代码来实现,如何通过键盘上的数字按键”1“来控制这些片段完成一个动画流程

首先,如何设置一个按键:
在菜单栏中选择 Edit->;Project Setting->Input
在Input属性面板中选择一项
Name设置成Play
Negative Button(按下键)设置成数字键”1“ ;
Positive Button (松开键)设置成数字键”1“ ;
如下图所示:

2.jpg (80.17 KB, 下载次数: 0)

下载附件  保存到相册

2013-6-5 09:55 上传



好了,按键我们在上面已经设置好了。
接下来到底如何用代码来实现通过键盘上的数字按键”1“来控制这些片段完成一个动画流程呢?
下面请看详细代码 :

 

//是否可控

bool CanControl=true;

 

// Update is called once per frame

void Update ()

{

   //当按下play  也就是我们上面设置的数字键”1“。

  if (Input.GetButtonDown ("Play"))

  {

        //执行动画 叫"Aim"的动画片段 也就是我们上面设置的瞄准动画片段

gameObject.animation.PlayQueued ("Aim"); 

  }

   //当按下1键 且可控

   else if (Input.GetButtonUp ("Play")&&CanControl  )

   {

    //执行动画 fire 也就是我们上面设置的投篮动画片段

    gameObject.animation.PlayQueued ("Fire"); 

    //接着继续执行 Idle  也就是我们上面设置的准备动画片段

    gameObject.animation.PlayQueued ("Idle"); 

     CanControl =false ;

   }

  CanControl =true;

}

 

 

2.使用unity3d内置的动画系统

首先,拖放素材到场景窗口中,设置好摄像机坐标,加入平行光

6.jpg (31.97 KB, 下载次数: 0)

下载附件  保存到相册

2013-6-5 09:55 上传



在游戏窗口右上角,单击

7.jpg (1.14 KB, 下载次数: 0)

下载附件  保存到相册

2013-6-5 09:55 上传

,在弹出的菜单中依次选择 Add Tab->Animation

8.jpg (18.47 KB, 下载次数: 0)

下载附件  保存到相册

2013-6-5 09:55 上传



那么我们将发现游戏窗口上多了一个叫Animation(动画)的选项卡


接下来创建一个动画,在Animation(动画)选项卡中点击

9.jpg (2.92 KB, 下载次数: 0)

下载附件  保存到相册

2013-6-5 09:55 上传

后,在
弹出的窗体中保存我们的动画。

10.jpg (75.27 KB, 下载次数: 0)

下载附件  保存到相册

2013-6-5 09:55 上传



在Animation(动画)选项卡中,我们发现会有一小段菜单栏,我们从左到右先一一解释下
1:表示调到动画上一帧;
2:表示跳刀动画下一帧;
3:文本框输入 表示任意时间点
4:添加一个key
5:表示添加一个事件(需要代码编写)动作

11.jpg (3.14 KB, 下载次数: 0)

下载附件  保存到相册

2013-6-5 09:55 上传



可在对应选择项后面单击”-“号,则在弹出的菜单中 选择添加一条对应曲线或 key

12.jpg (27.28 KB, 下载次数: 0)

下载附件  保存到相册

2013-6-5 09:55 上传



下面我们添加 Rotation.y (以Y轴旋转),值为360度。
表示我们的对象将以360度的旋转物体。

13.jpg (24.63 KB, 下载次数: 0)

下载附件  保存到相册

2013-6-5 09:55 上传



在曲线区域 左键按住不放 拖拽选择一块区域

14.jpg (10.85 KB, 下载次数: 0)

下载附件  保存到相册

2013-6-5 09:55 上传



按”F“键后,就会发现 此区域会局部放大,这样很方便我在曲线节点较多的情况下查看

15.jpg (8.24 KB, 下载次数: 0)

下载附件  保存到相册

2013-6-5 09:55 上传




上面简单介绍了下Unity3d的内置动画,下面 我们将介绍代码事件动画

16.jpg (31.65 KB, 下载次数: 0)

下载附件  保存到相册

2013-6-5 09:55 上传



如上图 我们首先定义了一个 摄像机的对象
然后 写了2个公共事件方法
CameraFarAway():这个方法我们实现了 摄像机视角拉远
CameraClose():这个方法我们实现了 摄像机视角拉近

然后通过上面的方法,在对应事件节点添加一个事件动画 即可实现 拉远拉近的动画
如下图:

视角拉近 叉车旋转,叉车前面的夹子下降的动画

17.jpg (10.23 KB, 下载次数: 0)

下载附件  保存到相册

2013-6-5 09:55 上传



视角拉远 叉车旋转,叉车前面的夹子上升的动画

unity3d代码实现动画功能

//定义一个时间变量

public float time=5.0f;

// Use this for initialization

void Start () {

                //定义一个动画曲线 起始位置 坐标为-3.023f,经过5.0秒后 坐标移动到2.96f

AnimationCurve curve=AnimationCurve.Linear (0.0f,-3.023f,time,2.96f);

//添加

curve.AddKey (2*time,-3.023f );

//创建一个动画片段

AnimationClip clip=new AnimationClip ();

//设置该片段中的曲线对象 以X轴移动

clip.SetCurve ("",typeof (Transform ),"localPosition.x",curve );

//添加该片段到动画

animation.AddClip (clip,"Test" );

//播放名叫“Test”的动画片段

animation.Play ("Test");

//循环播放该动画

animation.wrapMode =WrapMode.Loop ;

}

// Update is called once per frame

void Update () {

}

由上可以看出 代码创建 跟昨天所总结内部设置动画差不多
首先 创建一个曲线 然后由曲线生成片段 最后由片段生成动画。

 

 

场景跳转及简单的OnGUI界面绘制

//定义一个变量,保存要输入屏幕的话

private string instructionText="Instructiob:\n\n Press Left and Right arrow to Move. \n Press Space to fire.\n if your Sorcs have 5000,so you win";

        //定义一个背景 图片

public Texture backgroundTexture;

// Use this for initialization

void Start () {

}

// Update is called once per frame

void Update () {

}

void OnGUI()

{

                //在场景中绘制被设置的图片

GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),backgroundTexture);

//画一个Label 内容为上面定义的instructionText

GUI.Label(new Rect(10,10,250,200),instructionText);

                //按下任意键

if(Input.anyKeyDown)

{

                        //跳转到level1的场景中

Application.LoadLevel("level1");

}

}

 

 

 

在我们添加动画时 一定要选择legacy(继承),然后再设置动画


 

1:设置我们的动画
2:应用动画
3:就可发现项目窗口中多了三个动画片段。

 



 

扫描二维码推送至手机访问。

本サイト上に掲載の文章、画像、写真などを無断で複製することは法律で禁じられています。全ての著作権はGAMESHに帰属します。

本文链接:https://pylblog.com/post/28.html

标签: 游戏引擎
分享给朋友:
返回列表

没有更早的文章了...

下一篇:php获取网页源代码并朗读

相关文章

The Illustrated Nature-unity环境资源包

The Illustrated Nature-unity环境资源包

该unity资源包由一系列样式化的植被模型(树木、灌木、草地、岩石、植物)、材质球、图像效果和脚本组成的unity卡通场景,这些模型与声音和音乐一起放在一个场景中,以使它们在任何项目中都很有用并随时可...

Wizard spells pack Unity特效包

Wizard spells pack Unity特效包

论坛买的unity游戏特效资源包,需要的可以免费拿去学习学习!          链接:https:...

Cosmo Fox Girl / 科幻狐狸女-虚幻资源

Cosmo Fox Girl / 科幻狐狸女-虚幻资源

技术细节LOD 0:面:48368,tris 82316,verts 46551配备史诗骷髅。添加到 Epic Skeleton 的额外骨骼:eye_l/r、breast_l/r、tail_01-06...

HEROIC FANTASY CREATURES FULL PACK Volume 1 2.3 unity怪物合集包

HEROIC FANTASY CREATURES FULL PACK Volume 1 2.3 unity怪物合集包

v2.37:03/01/2021: 更新到巨鼠 (在根运动有问题) v2.36: 12/15:2020: 修复狼人皮肤 (上背部牙齿伸展) v2.35: 11/20/2020: 更新到幻想动画集。主...

Unity梦幻风格的场景-AZURE Nature1.1.1

Unity梦幻风格的场景-AZURE Nature1.1.1

5 种阔叶树5 种阔叶树5 种桦树5 种枞树5 种枯树3 种草地模型5 种灌木丛6 种岩石和悬崖6 种其他环境模型(树枝、蘑菇及其他)地形纹理(1024×1024 PNG):8种夏季纹理8种冬季纹理8...

unity3d特效资源包 Ultimate VFX V3.1

unity3d特效资源包 Ultimate VFX V3.1

需要Unity 5.5.0及以上版本制作真正的火焰、烟雾、闪电、狂暴风暴、冲击波等! AAA质量的效果,一个大集合(600MB)使用超高分辨率纹理,精灵表和先进的粒子系统配置为您的游戏...

评论列表

丛林意志
5年前 (2019-11-12)

我也想自学unity,直到我去了unity官网才发现
原来unity不支持X86(QAQ)

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。