1.新建项目
2.视图介绍
3.游戏截图
4.目录结构
assets存放项目相关内容
materials存放材质
prefab存放预设体
scenes存放场景
scrips存放c#脚本
5.默认c#文件vs编写
edit>preference
6.ball 相关操作
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Ball : MonoBehaviour
{
private Rigidbody rigidbody;
public int force = 5;
public Text ballText;
private int score = 0;
public GameObject winText;
// Use this for initialization
private void Start()
{
//获取 力
rigidbody = GetComponent<Rigidbody>();
}
// 球体移动
private void Update()
{
//获取输入水平力及垂直力
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
//控制坐标以及力的大小
rigidbody.AddForce(new Vector3(h, 0, v) * force);
}
//碰撞检测
private void OnCollisionEnter(Collision collision)
{
//collision.collider获取碰撞物体collider组件
string name = collision.collider.name;
string t = collision.collider.tag;
print(name);
print(t);
if (collision.collider.tag == "pickup")
{
Destroy(collision.collider.gameObject);
}
}
//触发检测
private void OnTriggerEnter(Collider collider)
{
if (collider.tag == "pickup")
{
score++;
ballText.text = "当前的分: " + score.ToString();
if (score == 2)
{
winText.SetActive(true);
}
Destroy(collider.gameObject);
}
}
}
7.相机视角固定
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FollowBall : MonoBehaviour
{
public Transform ballTransform;
private Vector3 offset;
// Use this for initialization
private void Start()
{
//球与相机相对位移
offset = transform.position - ballTransform.position;
}
// Update is called once per frame
//求位置更新后相机位置更新
private void Update()
{
transform.position = ballTransform.position + offset;
}
}
8.食物自转
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Pickup : MonoBehaviour
{
// Use this for initialization
private void Start()
{
}
// Update is called once per frame
private void Update()
{
transform.Rotate(new Vector3(0, 1, 0));
}
}
9.unity3D页面
c#中public对象会在此处显示,拖拽层级试图的对象到此处即可在c#代码中调用
其他相关方法可查询官方API HELP>unity manual
标签tag
可定义同一类游戏物体的标签,然后在后台获取