GAMESH

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

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

UNITY自学总结

admin12年前 (2015-03-02)学习44661

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获取网页源代码并朗读

相关文章

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...

The Illustrated Nature-unity环境资源包

The Illustrated Nature-unity环境资源包

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

unity游戏引擎开发的ARPG游戏DEMO

unity游戏引擎开发的ARPG游戏DEMO

耗时一个月左右终于完成了这个ARPG游戏的demo,基本框架已经达到了我的要求,只是还有些小bug需要后面慢慢修复!demo功能包括:移动(走动-小跑-疾跑)普通攻击无限连击空中攻击空中对地攻击8个技...

精美古埃及风格女孩人物模型 Egypt Girl角色模型

精美古埃及风格女孩人物模型 Egypt Girl角色模型

虚幻引擎项目资源古埃及风格女孩人物模型 Egypt Girl,导出max文件,版本为max2015!喜欢的可以拿去做个动画,原版虚幻资源自带几个动作,质量一般!链接:https://pan.baidu...

Kind Witch - Game Ready  MMORPG 巫女角色-虚幻资源

Kind Witch - Game Ready MMORPG 巫女角色-虚幻资源

女巫的 3D 模型,非常适合 RPG、大逃杀、射击、FPS。绑定到 Epic.Modular,拥有完整的身体。通过实例、ID 地图改变颜色。准备使用 Live Link Face、Faceware、v...

unity打包android出现Required API level 26

unity打包android出现Required API level 26

今天编译安卓的时候遇到了Required API level 26.,提示我所需的sdk版本需要为26,试着点击更新,但是提示了Unable to install additional SDK pla...

评论列表

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

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

发表评论

访客

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