本文介绍: 新建一个C#脚本叫做CameraController.cs,添加到 摄像机身上。在小球的脚本中,添加以下代码,若碰到了tag是pickup的物体,则销毁该物体。新建一个C#脚本叫做sphereControll,添加到 小球身上。新建脚本,Rotator.cs,挂到要旋转的物体上。
Roll-A-Ball 游戏
1)学习资料
- b站视频教程:https://www.bilibili.com/video/BV18W411671S/
- 文档:
* Roll-A-Ball 教程(一),
* Roll-A-Ball 教程(二) - 线上体验roll-a–ball成品
* http://www-personal.umich.edu/~ayarger/ShadowsInPlatformersWeb/
2)核心代码:
功能1:用W A S D控制小球移动的脚本:
新建一个C#脚本叫做sphereControll,添加到 小球身上。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class sphereControll : MonoBehaviour
{
// Update is called once per frame
void Update()
{
if (Input.GetKey(KeyCode.W))
{
GetComponent<Rigidbody>().AddForce(new Vector3(0, 0, 10));
}
if (Input.GetKey(KeyCode.S))
{
GetComponent<Rigidbody>().AddForce(new Vector3(0, 0, -10));
}
if (Input.GetKey(KeyCode.A))
{
GetComponent<Rigidbody>().AddForce(new Vector3(-10, 0, 0));
}
if (Input.GetKey(KeyCode.D))
{
GetComponent<Rigidbody>().AddForce(new Vector3(10, 0, 0));
}
if (Input.GetKey(KeyCode.Space))
{
GetComponent<Rigidbody>().AddForce(new Vector3(0, 10, 0));
}
}
}
或者:用Input.getAxis控制小球移动的脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class sphereControll : MonoBehaviour
{
float horizontal;
float vertical;
public float speed=10;
// Update is called once per frame
void Update()
{
horizontal=Input.GetAxis("Horizontal");
vertical=Input.GetAxis("Vertical");
GetComponent<Rigidbody>().AddForce(new Vector3(horizontal,0,vertical)*speed);
}
}
功能2:摄像机跟随脚本,
新建一个C#脚本叫做CameraController.cs,添加到 摄像机身上。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraController : MonoBehaviour
{
public GameObject player;
Vector3 offset;
void Start()
{
offset = transform.position - player.transform.position;
}
void Update()
{
transform.position = player.transform.position + offset;
}
}
功能3:物块自动旋转
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Rotator : MonoBehaviour
{
void Update()
{
transform.Rotate(new Vector3(15,30,45)*Time.deltaTime);
}
}
功能4:碰到即消失。
在小球的脚本中,添加以下代码,若碰到了tag是pickup的物体,则销毁该物体
void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "pickup")
{
Destroy(other.gameObject);
}
}
原文地址:https://blog.csdn.net/xiaxiaoxuedexiatian/article/details/134677423
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_4939.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。