-
//角色脚本 using UnityEngine; using System.Collections; public class MK_test : MonoBehaviour { // 浮点数变量自定义 public float speed; // Use this for initialization void Start () { // 获取摄像机 . 获取摄像机脚本组件 . 让player 赋值为自身 GameObject.Find ("Main Camera"). GetComponent<SceneCamera> ( ). player = this.gameObject; } // Update is called once per frame void Update () { WalkForward (); } void WalkForward(){ transform.position = transform.position + transform.forward * speed * Time.fixedDeltaTime; } } ================================================== //摄像机脚本_LateUpdate using UnityEngine; using System.Collections; public class SceneCamera : MonoBehaviour { public GameObject player; // Use this for initialization void Start () { } // Update is called once per frame void Update () { } void LateUpdate( ){ if (player != null) { // 摄像机盯住角色 camera.transform.LookAt (player.transform.position); } } }查看全部
-
这个场景在《课堂演示案例》——Assets——Objects——Environment——StructuralElements里,拖到新建工程就好了。
查看全部 -
Unity模块组成查看全部
-
unity5.1.1新版本添加Main Maps下属性Albedo添加Textures图片名(双击即可)查看全部
-
应用面挺广的,学习下。查看全部
-
【脚本基础】:
Unity里可以使用C#和UnityScript;
在Unity里面凡是能挂在GameObject上的都是Component;
Script也可以作为一个Component;
Script要想挂在GameObject上就必须继承MonoBehaviour。
游戏是一种循环。
【Unity如何通过脚本驱动游戏】:
Instantiate()创建GameObject;
通过Awake()和Start()来做初始化;
Update,LateUpdate和FixedUpdate更新逻辑;
用OnGUI绘制UI;
OnCollisonEnter等进行物理计算;
OnPreCall等来控制渲染。
【如何更新逻辑】:
场景启动时调用所有脚本的Awake();
调用所有脚本的Start();
每一帧会调用一次Update;
所有脚本的Update调用完后,调用LateUpdate;
一帧中调用几次FixedUpdate。
Update和LateUpdate一帧只调用一次,FixedUpdate和时间相关,例如,目标跑60帧,每一帧会更新一次FixedUpdate;游戏性能不行,没有达到理想帧数(例如30帧),一帧会调用两次FixedUpdate。这样可以保证单位时间内做得更新频率相同。
【对象销毁】:
调用Destroy销毁GameObject;
销毁对象时脚本调用OnDestroy(析构)。
【脚本间的通信】:
通过GetComponent找到(同一物体上挂的)其他脚本;
通过GameObject.Find找到其他物体
查看全部 -
https://store.unity.com/cn/download?ref=personal查看全部
-
将老师间的人物跟着鼠标旋转的代码整理了下: // The angle between dirA and dirB around axis(向量a,b以轴axis的夹角) static float AngleAroundAxis (Vector3 dirA, Vector3 dirB, Vector3 axis) { // Project A and B onto the plane orthogonal target axis dirA = dirA - Vector3.Project (dirA, axis);//dirA到轴axis的投影(计算dirA投影在垂直于axis轴的平面的向量) dirB = dirB - Vector3.Project (dirB, axis);//dirB到轴axis的投影(计算dirB投影在垂直于axis轴的平面的向量 // Find (positive) angle between A and B float angle = Vector3.Angle (dirA, dirB);//得到鼠标前后两次位置在平面上的转动的角度 // Return angle multiplied with 1 or -1 return angle * (Vector3.Dot (axis, Vector3.Cross (dirA, dirB)) < 0 ? -1 : 1);//放回的值随夹角的增大而减小 }查看全部
-
从unity中的自带例子导出资源,再把它导入自建的项目中。查看全部
-
fbx(文件):3D工具导出的一种格式(由美术编辑而成的)
fbx文件可直接拷贝到工程的文件夹里。
只有带有Renderer组件才会在场景中渲染出来
Mesh决定物体的形状,Material材质决定视觉效果
Material: Texture贴图 Shader:是一种程序,针对的不是CPU而是GPU,控制渲染效果
查看全部 -
GetComponent 找到其他脚本
Gameobject.Find 找到其他物体
transform.position 每一帧
transform.forward 面向的方向
walkSpeed 一秒能前进多少单位
Time.deltaTime 上一帧到这一帧经历的时间
FixedUpdate() 与时间无关, 去掉方法对时间的处理 通常做物理运算
GameObject.Find ("Main Camera")
找到场景中名字叫Main Camera
GetComponent< >
得到一个类型为脚本名的对象,将它的player值设置为当前对象
camera 镜头
camera.transform.LookAt (player.transform.position)
镜头盯住player对象的位置
查看全部 -
camera's projection(投影方式)
perspective 远景,近大远小,适合3D
orthographic 正交视角,视角内大小一致,适合2D
查看全部 -
gameobject可以放到其他gameobject内,成为其他gamemobject的子节点查看全部
-
怎么做自己的纹理查看全部
-
右键一个文件,dublicate 选项 是复制的意思查看全部
举报