我正在Unity中开展一个游戏项目.我的问题是我想取一个数字并按特定百分比减少.我可以指向一个好的资源或提供一个好的答案.
问题是:通常情况下,脚本应该在周围的玩家一个立方体产生16个预制件,当我启动它工作得很好,因为它呼吁启动功能的产生,但是当我在另一块步骤与第一人控制它生成那些16块每秒钟,它会产生很多滞后现象并且真的很糟糕,不应该产生那么多预制件,任何帮助都非常值得赞赏.非常感谢你.
我不认为这是一个大问题,因为这是允许的,但在连续几天尝试解决这个问题之后,它似乎仍然无法正常工作.所以这就是我得到的:
infiniteTerrain附加到第一个人控制器.txt文件中,以便在需要时加载它们以最小化滞后量. chunkRename附加到生成的每个块以下是脚本:
infiniteTerrain.js
#pragma strict
var terrains : GameObject[];
var newworld = true;
var trees : GameObject[];
var vegetation : GameObject[];
var rivers : GameObject[];
var mountains : GameObject[];
var playerTerrainUnavailable = false;
var x = 50;
var z = 50;
var y = 100;
var cameraDirection : float;
var chunkWidth = 50;
var chunk1 = " ";
var chunk2 = " ";
var …Run Code Online (Sandbox Code Playgroud) 我在第56行收到错误...有人可以告诉我为什么吗?我没有在if语句的末尾添加任何分号,我也使用右括号放置......这里有什么问题?我将不胜感激,谢谢!
这是我的代码:
using UnityEngine;
using System.Collections;
public class PlayerPrefsManager : MonoBehaviour {
const string MASTER_VOLUME_KEY = "master_volume";
const string DIFFICULTY_KEY = "difficulty";
const string LEVEL_KEY = "level_unlocked_";
public static void SetMasterVolume(float volume)
{
if (volume > 0f && volume < 1f) {
PlayerPrefs.SetFloat (MASTER_VOLUME_KEY, volume);
} else {
Debug.LogError ("Master volume out of range");
}
}
public static float GetMasterVolume()
{
return PlayerPrefs.GetFloat (MASTER_VOLUME_KEY);
}
public static void UnlockLevel (int level)
{
if (level <= Application.levelCount - 1) {
PlayerPrefs.SetInt(LEVEL_KEY …Run Code Online (Sandbox Code Playgroud) 为什么它返回0?
print(70 * (50 / 100));
Run Code Online (Sandbox Code Playgroud)
70*0,5 = 35
我不知道为什么会这样.或者我犯了一些愚蠢的错误......我不知道
我想将从我的游戏商店购买的物品(例如装饰品)制作成在购买后进入库存。
我创建了一个带有购买按钮和东西的商店系统,但我不知道如何使库存接收物品。这些是我为商店和库存编写的脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class ShopManager : MonoBehaviour
{
public int[,] shopItems = new int[9, 9];
public float coins;
public Text CoinsTXT;
void Start()
{
CoinsTXT.text = "" + coins.ToString();
//ID's
shopItems[1, 1] = 1;
shopItems[1, 2] = 2;
shopItems[1, 3] = 3;
shopItems[1, 4] = 4;
shopItems[1, 5] = 5;
shopItems[1, 6] = 6;
shopItems[1, 7] = 7;
shopItems[1, 8] = 8;
//Price
shopItems[2, 1] = …Run Code Online (Sandbox Code Playgroud) 我创建了一个项目,当我们触摸它时旋转立方体.当用户停止触摸立方体时,我希望立方体返回其原始位置.下面我添加了旋转立方体的源代码:
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(MeshRenderer))]
public class dr : MonoBehaviour
{
#region ROTATE
private float _sensitivity = 1f;
private Vector3 _mouseReference;
private Vector3 _mouseOffset;
private Vector3 _rotation = Vector3.zero;
private bool _isRotating;
#endregion
void Update()
{
if(_isRotating)
{
// offset
_mouseOffset = (Input.mousePosition - _mouseReference); // apply rotation
_rotation.y = -(_mouseOffset.x + _mouseOffset.y) * _sensitivity; // rotate
gameObject.transform.Rotate(_rotation); // store new mouse position
_mouseReference = Input.mousePosition;
}
}
void OnMouseDown()
{
// rotating flag
_isRotating = true;
// store …Run Code Online (Sandbox Code Playgroud)