1,  游戏入门的一些知识点,游戏对象GameObject(角色), 组件Compoent(角色的功能),资源Asset(美术素材呵呵音频等的数据),场景Scene(用以放置各个角色,负责展示画面),预制Prefab(事先做好的模型,游戏中代码生成)。

2,小demo。
脚本预览,Player.cs :用于控制小方块的运动。

Ball.cs:控制小球运动。

Launcher.cs:用于控制发射台和小球的发射。

注:观察unity标题栏,能发现在unity Personal(64bit)-Untitled ------这一文版右侧有“*”号,* 表示当前项目文件需要保存,保存之后该符号就会消失。之后做了操作之后需要重新保存的时候,符号会再次出现。

调整摄像机的角度,:按住Alt键的同时拖动鼠标左键,摄像机以地面为中心旋转。而若按住Alt键盘和Ctrl键(苹果是Command键)的同时拖动鼠标左键,摄像机平行移动。滚动鼠标滚轮,画面将向场景深处前后移动。

涉及的一个问题:unity在处理数字的时候,并未特别说明是按照米或者厘米为单位进行计算。不过在重力值设为9.8的时候,就意味着Rigibody组件是按照1.0=1米的尺寸模拟物理运动。

若游戏中玩家角色和小球的尺寸是1.0,那么就是直径为1米的庞然大物。而在现实世界中,人们会觉得大物体是缓慢落下的,也因此许多微缩电影摄影中,通过把高速摄影拍下的东西进行缓慢播放,就可以把某些小的细节放大。

此时,为了消除或者减缓这种慢悠悠落下的效果,可以采取的方法有两种,1,减小对象自身的尺寸,2增加重力值,增强重力后,物体对象下落的速度会变得很快。

Edit--> Project setting --> Physics ,在检视面板将Gravity项的Y 值首位提高一些,比如设置为-20。(注意:是负值)

栗子:

脚本:

public class Launcher : MonoBehaviour {
public GameObject ballPrefab;
void Start () { }
void Update () {
if (Input.GetMouseButtonDown())
{
Instantiate(ballPrefab);//创建预制体ballPrefab
}
}
void OnBecameInvisible()
{
Destroy(this.gameObject);//删除游戏对象
}
}
public class Ball : MonoBehaviour {

    void Start () {
this.GetComponent<Rigidbody>().velocity = new Vector3(-8.0f, 8.0f, 0.0f);
} void Update () { }
}
public class Player : MonoBehaviour {

    protected float jump_speed = 5.0f;
private bool is_inland = true;//着陆标记
void Start () { } void Update()
{
if (this.is_inland)
{
if (Input.GetMouseButtonDown())
{
this.is_inland = false;
this.GetComponent<Rigidbody>().velocity = Vector3.up * this.jump_speed;
//若玩家第一次起跳未结束就进行了第二次的鼠标左键点击,此时是会继续向上运动的,此时需要加入开关/标记
// Debug.Break();//暂停游戏运行,观看效果;此函数便于检测,游戏中速度等的很快的时候,不方便查看的时候
}
} }
void OnCollisionEnter(Collision collision)
{
//用于区分不同对象
if (collision.gameObject.tag == "Finish")
{
this.is_inland = true;
} }

注:弹性材质:

注:可以利用最高点的高度计算得到起跳速度

public class Player : MonoBehaviour {

    protected float jump_height = 4.0f;
private bool is_inland = true;//着陆标记
void Start () { } void Update()
{
if (this.is_inland)
{
if (Input.GetMouseButtonDown())
{
this.is_inland = false;
float y_speed=Mathf.Sqrt(2.0f*Mathf.Abs(Physics.gravity.y)*this.jump_height);
this.GetComponent<Rigidbody>().velocity = Vector3.up *y_speed; }
    }
}

利用的公式是v=根号下 2*g*h;

unity游戏设计与实现 --读书笔记(一)的更多相关文章

  1. Linux内核设计与实现 读书笔记 转

    Linux内核设计与实现  读书笔记: http://www.cnblogs.com/wang_yb/tag/linux-kernel/ <深入理解LINUX内存管理> http://bl ...

  2. 【2018.08.13 C与C++基础】C++语言的设计与演化读书笔记

    先占坑 老实说看这本书的时候,有很多地方都很迷糊,但却说不清楚问题到底在哪里,只能和Effective C++联系起来,更深层次的东西就想不到了. 链接: https://blog.csdn.net/ ...

  3. Unity游戏设计与实现 南梦宫一线程序员的开发实例

    图灵程序设计丛书 Unity游戏设计与实现:南梦宫一线程序员的开发实例(修订版)     加藤政树 (作者) 罗水东 (译者)  c# 游戏 unity   <内容提要>本书的作者是日本知 ...

  4. Unity Shader入门精要读书笔记(一)序章

    本系列的博文是笔者读<Unity Shader入门精要>的读书笔记,这本书的章节框架是: 第一章:着手准备. 第二章:GPU流水线. 第三章:Shader基本语法. 第四章:Shader数 ...

  5. Unity Shader入门精要读书笔记(二)UnityShader概述

    第三章<UnityShader概述>的读书笔记: 1.Unity Shader模板提供了几种选择: 标准光照模型(新添加的基于物理的渲染方法) 不含光照的基本的顶点.片元着色器 屏幕后处理 ...

  6. Redis设计与实现读书笔记——简单动态字符串

    前言 项目里用到了redis数据结构,不想只是简单的调用api,这里对我的读书笔记做一下记录.原文地址: http://www.redisbook.com/en/latest/internal-dat ...

  7. Redis设计与实现读书笔记(二) 链表

    链表作为最基础的数据结构,在许多高级语言上已经有了很好的实现.由于redis采用C语言编写,需要自己实现链表,于是redis在adlist.h定义了链表类型.作者对于这部分没什么好说,源码比较简单,如 ...

  8. Redis设计与实现读书笔记(一) SDS

    作为redis最基础的底层数据结构之一,SDS提供了许多C风格字符串所不具备的功能,为之后redis内存管理提供了许多方便.它们分别是: 二进制安全 减少字符串长度获取时间复杂度 杜绝字符串溢出 减少 ...

  9. [Unity 游戏设计的元素]

    1.核心游戏机制 2.主题 3.功能集合 4.可能的附加功能 5.备用主题创意

随机推荐

  1. 从零开始学C#——不再更新,直接进入高阶教程

    从零开始学习C#不再更新,直接进入高阶教程. 入门教程,请自行谷歌.百度吧,有很多这样的教程. 编程是一件实践性很强的事情,那么接下来的文章将开始进行开发项目. 还在编程中迷茫的人们,先暂时放下一切的 ...

  2. oracle创建用户和密码以及授权登录问题

    创建有户名和密码CREATE USER 用户名 IDENTIFIED BY 密码;分配权限GRANT connect,dba to 用户名; 1:使用oracle的命令行登录oracle的方式(安装好 ...

  3. [转] Immutable 常用API简介

    本文主要整理了Immutable.js常用API的使用. Immutable 是什么? 关于Immutable的定义,官方文档是这样说的: Immutable data encourages pure ...

  4. error C1128: 节数超过对象文件格式限制: 请使用 /bigobj 进行编译

    VS2015出现如上错误. 默认情况下,对象文件最多可存放 65,536 (2^16) 个可寻址的节. 这种情况不管指定哪个目标平台. /bigobj 可将该地址容量增加至 4,294,967,296 ...

  5. 【Android】修改Android 模拟器IMEI

    修改Android 模拟器IMEI 在.....\android_sdk\tools文件下找到emulator-arm.exe,使用UltraEdit文本编辑器打开,搜索CGSN关键字,把000000 ...

  6. Python_socket

    TCP : 可靠传输,不安全,UDP: 安全传输,不可靠 一台机器上有2^16-1=65535个端口(1-1024)保留自己开就1024往上 socket (套接字):也可以理解为它是一个管道,用于描 ...

  7. Javascript 中调参数的脚本onclick="select(this)" this 怎么解释

    解释1. this,指当前的onclick所在的节点本身. 比如: <div onclick='select(this)"></div> 则当点击div时,this就 ...

  8. error: Microsoft Visual C++ 14.0 is required.

    缺少包的依赖!! 解决办法1. 安装 Microsoft visual c++ 14.0 https://964279924.ctfile.com/fs/1445568-239446865 或 htt ...

  9. 修改注册表.exe的文件目录

    文件打开方式不能选择默认打开文件 cmd >regedit 以sublime_text为例 HKEY_CLASSES_ROOT/Applications/sublime_text.exe/she ...

  10. Cyclic Nacklace hdu3746 kmp 最小循环节

    题意:给出一段字符串  求最少在最右边补上多少个字符使得形成循环串(单个字符不是循环串) 自己乱搞居然搞出来了... 想法是:  如果nex[len]为0  那么答案显然是补len 否则  答案为循环 ...