参考链接:https://github.com/csr632/Priests-and-devils (老师的github仓库)

1、简答并用程序验证
  • 游戏对象运动的本质是什么?
    游戏对象运动的本质就是使用矩阵变换(平移、旋转、缩放等)来改变游戏对象的空间属性。

  • 请用三种方法以上方法,实现物体的抛物线运动。(如,修改Transform属性,使用向量Vector3的方法…)
    (1)运用重力来实现物体抛物线运动
    效果图:

    实现代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class GameObject1 : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){this.GetComponent<Rigidbody>().velocity = new Vector3(10, 10, 0);}
}

(2)Transform.translate函数

public class GameObject2 : MonoBehaviour {    public float vY = 3.0f;public float aY = 1.0f;public float vX = 1.0f;void Start(){Debug.Log("Start!");}    void Update(){Vector3 change = new Vector3(Time.deltaTime * vX, Time.deltaTime * vY, 0);this.transform.Translate(change);vY -= aY * Time.deltaTime; }
}

(3)使用Lerp

public class GameObject3: MonoBehaviour {    public float vY = 3.0f;public float aY = 1.0f;public float vX = 1.0f;void Start(){Debug.Log("Start!");}    void Update(){Vector3 change = new Vector3(Time.deltaTime * vX, Time.deltaTime * vY, 0);this.transform.postion = Vector3.Lerp(this.transform.position, this.transform.position + move, 1);vY -= aY * Time.deltaTime; }
}
  • 写一个程序,实现一个完整的太阳系, 其他星球围绕太阳的转速必须不一样,且不在一个法平面上。

首先需要创建太阳系中所有的对象,同时由于题目要求转速不同且不在一个法平面上,所以,这里需要经可能为每个物体创建一个轴,使各物体绕轴旋转。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Universe : MonoBehaviour
{GameObject Sun, Moon, Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune;public Vector3 Ax1,public Vector3 Ax2;public Vector3 Ax3;public Vector3 Ax4;public Vector3 Ax5;public Vector3 Ax6;public Vector3 Ax7;public Vector3 Ax8;public Vector3 Ax9;void Start(){Sun = GameObject.Find("Sun");Moon = GameObject.Find("Moon");Mercury = GameObject.Find("Mercury");Venus = GameObject.Find("Venus");Earth = GameObject.Find("Earth");Mars = GameObject.Find("Mars");Jupiter = GameObject.Find("Jupiter");Saturn = GameObject.Find("Saturn");Uranus = GameObject.Find("Uranus");Neptune = GameObject.Find("Neptune");}void Update(){Sun.Rotate(Vector3.up * 10 * Time.deltaTime);Moon.RotateAround(Earth.position, Vector3.up, 359 * Time.deltaTime);Moon.Rotate(Vector3.up * 30 * Time.deltaTime);Mercury.RotateAround(Sun.position, Ax1, 47 * Time.deltaTime);Mercury.Rotate(Vector3.up * 50 * Time.deltaTime);Venus.RotateAround(Sun.position, Ax2, 35 * Time.deltaTime);Venus.Rotate(Vector3.up * 30 * Time.deltaTime);Earth.RotateAround(Sun.position, Ax3, 10 * Time.deltaTime);//公转Earth.Rotate(Vector3.up * 30 * Time.deltaTime);//自转Mars.RotateAround(Sun.position, Ax4, 24 * Time.deltaTime);Mars.Rotate(Vector3.up * 30 * Time.deltaTime);Jupiter.RotateAround(Sun.position, Ax5, 13 * Time.deltaTime);Jupiter.Rotate(Vector3.up * 30 * Time.deltaTime);Saturn.RotateAround(Sun.position, Ax6, 9 * Time.deltaTime);Saturn.Rotate(Vector3.up * 30 * Time.deltaTime);Uranus.RotateAround(Sun.position, Ax7, 6 * Time.deltaTime);Uranus.Rotate(Vector3.up * 30 * Time.deltaTime);Neptune.RotateAround(Sun.position, Ax8, 5 * Time.deltaTime);Neptune.Rotate(Vector3.up * 30 * Time.deltaTime);Pluto.RotateAround(Sun.position, Ax9, 3 * Time.deltaTime);Pluto.Rotate(Vector3.up * 30 * Time.deltaTime);}
}

Unity3D入门(二)相关推荐

  1. Unity3D入门(二):碰撞检測

    碰撞器由来 1.系统默认会给每一个对象(GameObject)加入一个碰撞组件(ColliderComponent),一些背景对象则能够取消该组件. 2.在unity3d中,能检測碰撞发生的方式有两种 ...

  2. Unity3D入门(二):碰撞检测

    碰撞器由来 1.系统默认会给每个对象(GameObject)添加一个碰撞组件(ColliderComponent),一些背景对象则可以取消该组件. 2.在unity3d中,能检测碰撞发生的方式有两种, ...

  3. 从零开始的unity3d入门教程(一)----环境配置

    从零开始的unity3d入门教程(一)----环境配置 文章目录 从零开始的unity3d入门教程(一)----环境配置 一.unity3d的安装 1.注册Unity账户 2.进入Unity3d中文官 ...

  4. 从零开始的unity3d入门教程(五)---- 基于Vuforia的AR项目

    从零开始的unity3d入门教程(五)---- 基于Vuforia的AR项目 文章目录 从零开始的unity3d入门教程(五)---- 基于Vuforia的AR项目 一.前言 二.Unity与VS环境 ...

  5. SQL基础使用入门(二): DML语句和DCL语句

    SQL语句第二个类别--DML 语句 DML是数据操作语言的缩写,主要用来对数据表中数据记录实例对象进行操作,包括插入.删除.查找以及修改四大操作,这也是开发人员使用中最为频繁的操作. 1.插入记录 ...

  6. Unity3D 入门 游戏开发 Unity3D portal game development

    Unity3D 入门 游戏开发 Unity3D portal game development 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com ...

  7. 文本分类入门(二)文本分类的方法

    文本分类入门(二)文本分类的方法 文本分类问题与其它分类问题没有本质上的区别,其方法可以归结为根据待分类数据的某些特征来进行匹配,当然完全的匹配是不太可能的,因此必须(根据某种评价标准)选择最优的匹配 ...

  8. 转 Python爬虫入门二之爬虫基础了解

    静觅 » Python爬虫入门二之爬虫基础了解 2.浏览网页的过程 在用户浏览网页的过程中,我们可能会看到许多好看的图片,比如 http://image.baidu.com/ ,我们会看到几张的图片以 ...

  9. Unity3D入门其实很简单

    在上次发布拙作后,有不少童鞋询问本人如何学习Unity3D.本人自知作为一名刚入门的菜鸟,实在没有资格谈论这么高大上的话题,生怕误导了各位.不过思来想去,决定还是写一些自己的经验,如果能给想要入门U3 ...

  10. java类作用域标识符_java入门 (二) 标识符、数据类型、类型转换、变量、常量、作用域...

    java入门(二) 标识符 数据类型 类型转换 变量.常量.作用域 本次笔记引用B站:狂神说,虽然早就会了,现在回头来敲下基础,加深印象 1.标识符: java所有的组成部分都需要名字.类名丶变量名丶 ...

最新文章

  1. linux shell curl 超时与重试
  2. sql server--优化
  3. Google 图片下载工具
  4. FlasCC例子研究之Drawing补充
  5. python tkinter画布中使用turtle_[Tkinter canvas of Python]海龟图书馆,python,之,tkinter,画布,Turtle,库...
  6. 【LeetCode笔记】139. 单词拆分(Java、动态规划、字符串、哈希表)
  7. 高精度加法(简明版C语言),高精度加法(简明版C语言)
  8. ZJOI 2008 瞭望塔 三分法
  9. jav使用python模型实现方案
  10. python oserror捕获,Python3基础 try-指定except-as reason 捕获打开一个不存在的文件的时候,会产生OSError异常的示例...
  11. 怎么使用计算机自带的摄像头拍视频,电脑怎么用摄像头录制视频
  12. 弹性公网ip到底是什么意思?弹性公网ip与公网ip的区别
  13. python判断word页码
  14. 软件环境:安装报Error opening file for writing
  15. HTTP状态404-未找到
  16. 抖音拍摄脚本怎么写,掌握这几点快速拍摄爆款视频丨国仁网络资讯
  17. 抖音大咖如何寻找广告主?这三种途径值得了解
  18. OPengl实现小球围绕大球旋转的效果
  19. 记录第一个360浏览器翻译插件
  20. 产品健康度模型(4) 打分I

热门文章

  1. 详解网商银行“三地五中心”数据部署架构
  2. 笔记本电脑和台式机电脑长时间不用后卡顿解决办法
  3. 淘宝开放平台天猫国际订单关于价格的研究
  4. sum() over(partition by order by row between ... )
  5. uniapp 动态组件_20款奔驰G63夜色组件现车图全国最低价_凤凰网汽车
  6. SparkGraphX图计算(一)
  7. input黄色边框怎么去掉?
  8. 电脑老是找不到打印机怎么解决方法
  9. XP修改桌面路径方法
  10. 5G PDSCH物理层过程