当前位置: 首页 > news >正文

网站seo诊断书建瓯企业网站建设

网站seo诊断书,建瓯企业网站建设,酒泉如何做百度的网站,用angular做的网站文章目录 概述常用组件各类文件基础知识创建工程工程目录介绍五个窗口面板创建代码和场景 脚本与编程鼠标的输入键盘的输入代码来操作组件获取物体API资源的使用API定时调用与线程向量的基本运算预制体与实例 物理系统与组件案例实操作快捷键来源 Unity已广泛运用到各个领域 游戏VR/AR…影视工业仿生/模拟数字孪生全息投影······ 概述 1、物体与空物体 物体Game Object其实是一个节点或容器。一般所谓的“物体”即有形状的东西对应的Mesh网格信息代表了物体形状。 空物体Empty Object即空对象、空节点。空物体不可见没有网格但空物体也有坐标可以移动。空物体常用于节点的组织和管理或用于标记一个位置。 2、父子关系 父子关系指两个物体之间的关系。在Hierarchy窗口中拖动物体B到物体A下子物体会随着父物体一并移动。删除父物体时子物体也会一并删除。子物体的坐标是相对于父物体的即相对坐标。 3、世界坐标系与本地坐标系 Global即世界坐标系。以世界中心为轴6个方向代表了上、下、东、西、南、北。 Local即本地坐标系。以物体自身为轴6个方向代表了上、下、前、后、左、右。 Y轴称为UpZ轴称为ForwardX轴称为Right。一般地在建模软件里建模时模型的正面与Z轴的方向一致。移动一个物体时一般就是让这个物体向前运动Forward。 4、轴心与几何中心 Pivot即轴心。指一个物体的操作基准点。 Center即几何中心。对于基本体来说轴心点默认位于几何中心但并不是所有物体的轴心都在几何中心点。 在Unity中默认情况下显示的是Pivot操作模式即轴心模式。另外一种模式是几何中心点模式。可选择切换物体在移动、旋转和缩放时是以哪个点作为操作基准点。一般使用的是Pivot模式。 5、组件 Component即组件。代表一个具体功能例如Light光源。Directional Light平行光源。Mesh Filter网格过滤器用来加载网格数据。Mesh Renderer负责渲染。 常用组件 1、摄像机 Camera即摄像机。负责拍摄游戏画面。摄像机的Z轴指向即为拍摄方向。拍到的画面呈现在Game窗口中也就是玩家最终看见的画面。 调整摄像机的角度可用两种方式。第一种手动。手工移动、旋转摄像机对准目标。第二种GameObject-Align With View与3D视图对齐。先在3D视图里摆好角度此为观察者视角然后选中Main Camera执行Align With View。此时摄像机视角与观察者视角完全相同。 2、Transform组件 Transform即变换组件。物体的基本参数有Position位置相对坐标、Rotation旋转欧拉角、Scale缩放。Transform就是用来描述一个物体在空间中的位置坐标、旋转量和缩放量。所有物体都有Transform组件而且不能被删除。 3、AudioSource组件 AudioSource组件用于播放音乐/音效。创建一个物体Add ComponentAudio | Audio Source将音乐文件*.mp3/wav/aiff拖到AudioSource.AudioClip属性。 各类文件 1、资源文件 Assets目录下的文件即为资源。使用Meta来描述文件每个资源文件/文件夹都对应一个*.meta描述文件。 常见的类型有模型文件Model.fbx、图片文件Texture.jpg/png/tif/psd等、音频文件AudioClip.mp3/wav/aiff、脚本文件Script.cs、材质文件Material.mat、场景文件.unity等等。 2、场景文件 场景文件*.unity记录了场景中的节点数据。包含场景全局设置、节点、节点下挂载的组件、各组件的参数值等。一个场景往往代表一个关卡可以创建多个不同的场景。 3、资源包 Unity中的资源包Unity Package即对Assets下的资源进行打包。选择一个资源文件或一个目录。右键Export Package生成*.unitypackage资源包。 基础知识 创建工程 1点击Unity hub,新建即可 提示若无法新建可能是未登录且没有激活许可证。操作如下 工程目录介绍 在新建完成后会在创建的目录下生成相关工程文件: Assets: 资源场景脚本模型 Library: 库系统 Logs: 日志 Packages: 导入的包 ProjectSettings: 工程设置 Temp: 临时文件文件过大可以删除部分缓存 UserSettings: 设置 五个窗口面板 创建完成后会有5个窗口面板红色方框 Project工程面板存放工程的各种资源。包括声音资源、模型资源、场景文件、材质、脚本等。 Hierarchy层级面板展示当前打开的场景里面有哪些东西。里面的东西称为游戏物体 Inspector检视面板或属性面板查看一个游戏物体由哪些组件组成。 场景 - 多个游戏物体 - 多个组件 Scene场景面板显示当前场景的样子 鼠标中键平移视角 鼠标右键旋转视角环顾四周围绕自身旋转 Alt鼠标左键渲染视角围绕当前视角前方位置 Game游戏面板场景运行的时候的样子 创建代码和场景 1Project Assets 右键选择create 创建 C# script 并重命名为“New Name”右键即可打开 2如果使用其他版本的编译器需要去单独指定 / 代码不提示也可以用此方法解决 Edit Preferences External Tools (附加工具) 在External Script Editor中有俩个选项 Open by file extension——根据文件后缀名采取相应工具打开 Microsoft Visual Studio 2019这个是自己安装的编译器 选择“Microsoft Visual Studio 2019”因为unity大多文件是C# 脚本与编程 鼠标的输入 旋转飞车实例 void Update(){/*0鼠标左键1鼠标右键2鼠标中键*/if (Input.GetMouseButtonDown(0)){Debug.Log(鼠标按下);rotateSpeed 900f;moveSpeed 300f;}if (Input.GetMouseButtonUp(0)){Debug.Log(鼠标抬起);rotateSpeed 0f;moveSpeed 0f;}this.transform.Rotate(0, rotateSpeed * Time.deltaTime, 0, Space.Self);this.transform.Translate(0, 0, moveSpeed * Time.deltaTime, Space.World);} 相关API GetMouseButtonDown:鼠标按下GetMouseButtonUp:鼠标抬起GetMouseButton:状态探测只要鼠标按下会一直调用。 旋转飞车实例2 void Update(){/*0鼠标左键1鼠标右键2鼠标中键*/if (Input.GetMouseButton(0)){rotateSpeed 900f;moveSpeed 300f;}else{rotateSpeed 0;moveSpeed 0;}this.transform.Rotate(0, rotateSpeed * Time.deltaTime, 0, Space.Self);this.transform.Translate(0, 0, moveSpeed * Time.deltaTime, Space.World);}一些补充的工具函数 //获取到鼠标点击的位置坐标 Vector3 mousePos Input.mousePosition; //获取到屏幕的尺寸 int screenWidth Screen.width; int screenHeight Screen.height;//获取物体的屏幕坐标 Vector3 pos this.transform.position; Vector3 screenPos Camera.main.WorldToScreenPoint(pos);键盘的输入 常用API Input.GetKeyDown(key):按键事件按下 Input.GetKeyUp(key):按键事件抬起 Input.GetKey(key):案件状态是否正被按下代码来操作组件 操作AudioSource组件 //获取到AudioSource组件(泛型) AudioSource audio this.GetComponentAudioSource(); //播放 audio.Play();引用别的组件 应用场景在主控结点中操作背景音乐的组件 public class MainLogic : MonoBehaviour {//public GameObject bgmNode;//引用扬声器组件public AudioSource bgm;//引用脚本组件public FanLogic fan;//风扇转速public float rotateSpeed;void Start(){//AudioSource audio bgmNode.GetComponentAudioSource();//audio.Play();bgm.Play();}void Update(){if(Input.GetMouseButtonDown(0)){rotateSpeed 800;//旋转代码在FanLogic脚本下 }} }获取物体API 案例主控结点下找到无人机目录下的旋翼对象,并调用它的脚本组件 //主控结点 //方式二(在Unity中拖入) public GameObject wingNode; //方式一 void Start(){GameObject node GameObject.Find(无人机/旋翼);RotateLogic rotateLogic node.GetComponentRotateLogic(); }获取游戏节点的父级与子级 //获取当前组件的父结点与父方位 Transform parent this.transform.parent; GameObject parentNode this.transform.parent.gameObject;//获取子结点的方位 //方式一通过foreach遍历 foreach (Transform child in transform) {Debug.Log(子物体 child.name); //child }//方式二通过GetChild()索引API Transform child this.transform.GetChild(0);//方式三通过名字查找子项 Transform child this.transform.Find(子项名或路径);给物体设置新的父级 this.transform.SetParent(null/GameObject);切换物体的显示状态 Transform child this.transform.Find(xxx); if(child.gameObject.activeSelf) {//隐藏child.gameObject.SetActive(false); } else {//显示child.gameObject.SetActive(true); }资源的使用API 用户按下AD键播放音效成功与失败 //成功音效 public AudioClip audioSuccess; //失败音效 public AudioClip audioFail;void Update() {if (Input.GetKeyDown(KeyCode.A)){AudioSource audio GetComponentAudioSource();audio.PlayOneShot(audioSuccess);}if (Input.GetKeyDown(KeyCode.D)){AudioSource audio GetComponentAudioSource();audio.PlayOneShot(audioFail);} }制作随机音乐盒程序 using System.Collections; using System.Collections.Generic; using UnityEngine;public class MusicBox : MonoBehaviour {public AudioClip[] songs;// Start is called before the first frame updatevoid Start(){if (songs null || songs.Length 0){Debug.Log(当前歌单列表为空);}}// Update is called once per framevoid Update(){if (Input.GetKeyDown(KeyCode.Space)){NextSong();}}private void NextSong(){//随机播放int randomIndex Random.Range(0, songs.Length);//取到AudioSource组件AudioSource audio GetComponentAudioSource();audio.clip this.songs[randomIndex];audio.Play();Debug.Log(正在播放第 (randomIndex1) 首歌歌名为 audio.clip.name);} }定时调用与线程 Unity是单线程核心暂时不必考虑线程调度并发。 //延迟调用API this.Invoke(函数名,延迟时间);//循环调用API this.InvokeRepeating(函数名,循环时间间隔);//查看当前线程的ID int ThreadId Thread.CurrentThread.ManagedThreadId;//判断函数是否正在被调用 bool isInvoking IsInvoking(函数名); //取消该函数的调用 CancelInvoke(函数名); //取消当前脚本所有Invoke调用 CancelInvoke();向量的基本运算 //定义一个三维向量 Vector3 v1 new Vector3(3,0,4); //求向量的模长 float length v1.magnitude; //向量标准化 Vector3 v2 v1.normalized;//物体运动的优化写法 //定义一个三维向量来表示不同方向的速度 public Vector3 speed;//优化物体移动写法 void Update() {this.transform.Translate(speed * Time.deltaTime,Space.Self); }预制体与实例 通过API创建实例 首先准备子弹的预制体prefab添加火控脚本 FireLogic.cs //子弹预制体 public GameObject bulletPrefab; //子弹目录 public Transform bulletFolder; //子弹出生点 public Transform firePoint; //炮塔的引用为了获取到炮塔发射子弹的方向 public Transform cannon;void Update() {//创建实例GameObject node Object.Instantiate(bulletPrefab,bulletFolder);//指定出生点node.transform.position this.firePoint.position;//指定初始角度node.transform.localEulerAngles this.cannon.eulerAngles;//子弹脚本参数的设置子弹飞行速度node.GetComponentBulletLogic().setSpeed(0.5f); }销毁子弹 //销毁自身结点的API Object.Destroy(this.gameObject); //注意不要写错写为⬇该写法是销毁组件而并非结点 Object.Destroy(this);物理系统与组件 Physic—RigidBody:刚体组件 常用属性 Mass:质量Drag摩擦力AngularDrag:角摩擦力 … Physic—Collider:碰撞模型 常用类型BoxCollider,SphereCollider 物理材质Phsicas Material: 在Assets中添加一个Physics Material在里面设置全局性的摩擦力Friction弹性系数等等 碰撞检测 实现 碰撞检测的步骤 RigidBody–is Kinematic 勾选标记为 运动学刚体Collider–is Tragger 勾选 标记为触发器挂一个脚本添加消息函数⬇ void OnTriggerEnter(Collider other) {//拿到被碰撞物体的名字string name other.name;//销毁被碰撞物体Object.Destroy(other.gameObject);Object.Destroy(this.gameObject); } 案例实操作 3D 射击游戏实战 1.导入模型 2.更改天空盒 Window—Rendering—lighting—environment—Skybox Material 3.添加子弹模型材质脚本等 4.给子弹和怪兽添加碰撞检测 5.子弹的自动发射自毁与预制体 6.玩家的按键操作 7.怪兽的走位移动 8.怪兽生成器 9.子弹和爆炸特效 源码展示 子弹BulletLogic using System.Collections; using System.Collections.Generic; using UnityEngine;/*子弹相关逻辑准备工作子弹的预制体以及导入工程1.子弹的Z轴移动2.子弹的自毁3.子弹的特效导入*/ public class BulletLogic : MonoBehaviour {//设置子弹的运动速度[Tooltip(子弹飞行速度)]public Vector3 speed;[Tooltip(子弹飞行时长)]public float lifetime 5f;[Tooltip(子弹爆炸特效预制体)]public GameObject explosionEffect;// Start is called before the first frame updatevoid Start(){Invoke(SelfDestroy, lifetime);}// Update is called once per framevoid Update(){this.transform.Translate(speed, Space.Self);}//触发器函数private void OnTriggerEnter(Collider other){Debug.Log(发生碰撞了);//如果碰撞到怪兽if (!other.name.StartsWith(怪兽)) return;Destroy(this.gameObject);Destroy(other.gameObject);//创建一个爆炸粒子特效对象GameObject node Object.Instantiate(explosionEffect,null);node.transform.position this.transform.position;//当粒子特效播放完成时自动销毁}//子弹自毁函数private void SelfDestroy(){Debug.Log(子弹已自毁);Destroy(this.gameObject);} }玩家PlayerLogic using System.Collections; using System.Collections.Generic; using UnityEngine;/*玩家相关逻辑准备工作导入玩家模型的预制体资源1.设置子弹发射点并实现从该点定时发射子弹2.添加玩家的按键控制移动*/ public class PlayerLogic : MonoBehaviour {//预制体资源public GameObject bulletPrefab;//子弹生成目录public Transform bulletFolder;//子弹发射点public Transform firePoint;//子弹发射间隔public float fireInterval;//玩家移动速度public float playerSpeed;// Start is called before the first frame updatevoid Start(){InvokeRepeating(fire, fireInterval, fireInterval);}// Update is called once per framevoid Update(){float speedX 0;//按键控制if (Input.GetKey(KeyCode.A)){speedX -playerSpeed;}else if (Input.GetKey(KeyCode.D)){speedX playerSpeed;}else{speedX 0;}this.transform.Translate(speedX * Time.deltaTime, 0, 0, Space.Self);}//发射子弹的函数private void fire(){//生成一个子弹实例GameObject bullet Object.Instantiate(bulletPrefab, bulletFolder);//设置子弹的出生点bullet.transform.position this.firePoint.position;} }怪兽EnemyLogic: using System.Collections; using System.Collections.Generic; using UnityEngine;/*怪兽相关逻辑准备工作导入怪兽的预制体进工程1.水平速度的蛇皮走位逻辑2.前后速度的固定逻辑*/ public class EnemyLogic : MonoBehaviour {//水平速度float speedX 0;//前后速度public float speedZ;// Start is called before the first frame updatevoid Start(){//重复周期调用蛇皮走位InvokeRepeating(move, 0.1f, 0.5f);}// Update is called once per framevoid Update(){this.transform.Translate(speedX * Time.deltaTime, 0, speedZ * Time.deltaTime, Space.Self);}//怪兽的蛇皮走位private void move(){//设置一个随机速度数组float[] speed { -5, -10, -20,-30, 5, 10, 20 ,30};//随机选取一个速度作为水平速度int rnum Random.Range(0, speed.Length);//设置速度speedX speed[rnum];} }怪兽生成器EnemyCreator: using System.Collections; using System.Collections.Generic; using UnityEngine;/*怪兽生成器相关逻辑1.定时生成怪兽即可*/ public class EnemyCreator : MonoBehaviour {//要创建的怪兽预制体public GameObject enemyPrefab;//创建怪物间隔时长public float enemyInterval 0.5f;// Start is called before the first frame updatevoid Start(){InvokeRepeating(creatEnemy, 0.1f, enemyInterval);}// Update is called once per framevoid Update(){}private void creatEnemy(){GameObject node GameObject.Instantiate(enemyPrefab, this.transform);node.transform.position this.transform.position;//调整随机出生点int rnum Random.Range(-50, 50);node.transform.Translate(rnum, 0, 0, Space.Self);} }快捷键 commandN 新建场景 commandO 打开场景 commandS 保存场景 Shift command S 场景另存为 Shift command B 编译设置 command B 编译并运行 command z Undo 撤销 shift command z Redo 撤销 command X Cut剪切 command C Copy拷贝 command V Paste粘贴 command D Duplicate 复制 shift Del Delete 删除 command F 查找 command A 全选 command P Play播放 Shift command P Pause暂停 Alt command P step停止 command R Refresh 刷新 Shift command N 新建空GameObject Alt command F Move to View 移动到视图 Shift command F Align with View 视图对齐 command 1 选择Scene视图 command 2 选择Game视图 command 3 选择Inspector面板 command 4 选择Hierarchy 视图 command 5 选择Project 视图 command 6 打开Animation动画窗口 command 7 打开Profilter分析器 command 8 打开Particle Effect 粒子窗口 command 9 打开Asset store资源商店 command 0 打开Asset server资源服务器 shift command C 打开Console 控制台 Q 切换平移模式 W 切换移动模式 E 切换旋转模式 R 切换缩放模式 Z Pivot Mode toggle 轴点模式切换 X Pivot Rotation toggle 轴点旋转切换 一、变换工具 6个 快捷键Q–Hand手形工具 可以平移整个Scene视图 快捷键W–Translate移动工具 移动所选择的游戏对象 快捷键E–Rotate旋转工具 按任意角度旋转游戏对象 快捷键R–Scale缩放工具 缩放选中的游戏对象 快捷键T–横切面工具 可以沿着横截面缩放沿着横截面的中心点旋转 快捷键Z–Center工具 改变游戏对象的轴心点 快捷键X–Local工具 改变物体的坐标 二、播放控件 3个 CtrlP–播放按钮 播放/运行对游戏场景进行预览 CtrlShiftP–暂停按钮 暂停/中断停止预览 CtrlAltP–逐帧播放按钮 单帧进行预览 以上一、二为工具栏的快捷键 三、File文件菜单快捷键 6个 CtrlN–New Scene 新建场景 CtrlO–Open Scene 打开场景 CtrlS–Save Scene 保存场景 CtrlShiftS–Save Scene as 场景另存为 CtrlShiftB–Build Setings 发布设置 CtrlB–Build Run 发布并运行 四、Edit编辑菜单 11个 在Mac机中用command键替换Ctrl以下出现的Ctrl均同 CtrlZ–Undo Selection Change 撤销上一步操作 CtrlY–Redo 反撤销mac机为commandShiftZ CtrlX–Cut 剪切 CtrlC–Copy 复制 CtrlV–Paste 粘贴 CtrlD–Duplicate 复制并粘贴 ShiftDel–Delete 删除mac机位commandDel 快捷键F–Frame Selected 居中并最大化当前选中的物体 CtrlF–Find 搜索按照名称查找物体 ShiftF–Lock view to Selected 锁定搜索到的物体 CtrlA–Select All 选择全部 五、Assets菜单快捷键 1个 CtrlR–Refresh 刷新场景 六、GameObject菜单快捷键 5个 CtrlShiftN–Create Empty 创建一个空的游戏对象 AltShiftN–Create Empty Child 创建一个空的子物体 CtrlAltF–Move to New 移动游戏对象到视图的中心点 CtrlShiftF–Align With View AltShiftA–Toggle Active Stave 七、Component菜单快捷键 CtrlShiftA–add 添加组件 八、切换视图快捷键 12个 CtrlTab切换–next Windows 下个窗口 CtrlShiftTab切换–Previous Windows 上个窗口 Ctrl1切换–Scene视图 Ctrl2切换–Game视图 Ctrl3切换–Inspector视图 Ctrl4切换–Hierarchy视图 Ctrl5切换–Project视图 Ctrl6切换–Animation视图 Ctrl7切换–Profiler视图 Ctrl9切换–Asset Store Unity资源商店 Ctrl0切换–Asset Server 资源服务器 CtrlShiftC切换–Console 控制台 以上三~八为菜单栏快捷键 九操作Scene视图的快捷键 Alt鼠标左键–旋转视图 Alt鼠标右键–放大缩小视图 Alt鼠标中键–移动视图 鼠标右键w/s/a/d–向上/下/左/右 飞行浏览视图 鼠标右键w/s/a/dShift–向上/下/左/右 快速飞行浏览视图 来源 unity入门教程非常详细从零基础入门到精通看完这一篇就够了 【Unity篇】Unity入门介绍 Unity3D入门基础知识 Unity3D入门篇
http://www.yutouwan.com/news/127319/

相关文章:

  • 百度速页建站个人网站备案能几个
  • 建网站报价wordpress 婚礼主题
  • 阿里云做企业网站企业为什么要做流程
  • 手机网站如何做外链wordpress 图片主页
  • 河北高端建设网站英文seo是什么
  • 网站建设费 账务处理做搜狗网站点击赚钱
  • 网站建设百科郑州电力高等专科学校招生办电话
  • 上传到服务器的网站打开是空白签订网站制作协议需注意什么
  • 宁德市蕉城区建设局网站全返利网站建设
  • 网站建设 百度百科长春网络安全公司
  • 2021年给我一个网站支付宝网站开发
  • 网站样例淘客导航网站开发
  • 搭建网站的企业Wordpress竞拍
  • 手机建网站模板太原建站模板系统
  • 模板建站排版跟没缓存好似的自己怎么做网站网页
  • 网站开发工作方向有规范
  • 梅河口建设局网站通州区网站制作
  • 河南省建设安全监督站的网站成都创意网站设计
  • 网站如何做触屏滑动网站推广怎么样
  • 郑州外语网站建站优化活动列表 wordpress
  • 国内十大知名广告公司win7系统优化软件
  • 张北县网站建设苏州企业网站建设开发
  • 泉州网站建设服务西安seo计费管理
  • 相城区公司网站建设成都网页设计培训哪家好
  • 怎么查网站外链数互联网分享社区
  • 中英互译网站怎么做进京服务的链接
  • iis5.1怎么新建网站目录浏览的网站
  • 饮食中心网站建设方案四川住房和城乡建设部官方网站
  • 怎么才能百度做网站wordpress 导航插件
  • 东圃做网站公司设计效果图制作软件