This commit is contained in:
Sofia 2017-05-14 02:02:19 +03:00
commit 697f4132f2
6 changed files with 148 additions and 73 deletions

View File

@ -2211,8 +2211,8 @@ Transform:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1292364954462330}
m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5}
m_LocalPosition: {x: -0.03500003, y: 0.564, z: -0.5200002}
m_LocalScale: {x: 0.04500006, y: 0.010000011, z: 0.040000014}
m_LocalPosition: {x: -0.03500003, y: 0.564, z: -0.54}
m_LocalScale: {x: 0.05, y: 0.01, z: 0.04}
m_Children: []
m_Father: {fileID: 4236387573765288}
m_RootOrder: 9
@ -2448,8 +2448,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1491104319836832}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -2480,8 +2480,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1883316003296622}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -2512,8 +2512,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1173974356424114}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -2576,8 +2576,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1169828016369232}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -2608,8 +2608,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1763859699079746}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -2640,8 +2640,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1798430208900394}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -2672,8 +2672,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1161476972701840}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -2704,8 +2704,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1423050520125662}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -2736,8 +2736,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1138410146323874}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -2768,8 +2768,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1099916689909070}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -2832,8 +2832,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1312791058985896}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -2896,8 +2896,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1073554920665706}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -2960,8 +2960,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1847434687487808}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -2992,8 +2992,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1025623427266330}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -3024,8 +3024,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1467080138821004}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -3056,8 +3056,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1296316799000626}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -3120,8 +3120,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1750284427022208}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -3152,8 +3152,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1248976874401108}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -3216,8 +3216,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1603012649709942}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -3248,8 +3248,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1509849257957848}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -3376,8 +3376,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1611770961802438}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -3408,8 +3408,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1371998637789986}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -3440,8 +3440,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1008365958193210}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -3472,8 +3472,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1966794789270002}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -3536,8 +3536,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1631952559203138}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -3568,8 +3568,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1614693744922738}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -3635,8 +3635,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1848307522325432}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -3699,8 +3699,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1585839934909782}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -3731,8 +3731,8 @@ MeshRenderer:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1318315545082708}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -4649,6 +4649,8 @@ MonoBehaviour:
Inventory: {fileID: 114702404122310282}
Camera: {fileID: 20678872378488080}
Hologram: {fileID: 114633016952828368}
ItemNameText: {fileID: 114883821079952200}
ItemDescriptionText: {fileID: 114599527678381310}
ItemPreviewMesh: {fileID: 33585471952367662}
ItemPreviewSpinner: {fileID: 114807753601238226}
IconInventory: {fileID: 23114746529417128}
@ -4796,15 +4798,14 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
TextProperties:
Text: This item is a rare\npiece of the "way\ntoo long of a name"\ntechnology,
invented\nby space goblins in\nancient times.
Text:
OffsetX: 5
OffsetY: 0
Centered: 0
Background: {r: 0, g: 0, b: 0, a: 0}
FontSize: 32
Width: 256
Height: 228
Height: 204
Mesh: {fileID: 23667304044291600}
MaterialIndex: 0
Emissive: 0
@ -5002,7 +5003,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
TextProperties:
Text: Very Long Item\nName
Text:
OffsetX: 5
OffsetY: 0
Centered: 0

View File

@ -199,12 +199,8 @@ namespace Cyber.Console {
// Set an accurate row length (if the panel is set)
if (Panel != null && Panel.GetComponent<RectTransform>() != null) {
CharacterInfo CharInfo;
TextField.font.RequestCharactersInTexture("W", TextField.fontSize,
TextField.fontStyle);
TextField.font.GetCharacterInfo('W', out CharInfo,
float CharacterWidth = FontUtil.GetCharacterWidth(TextField.font,
TextField.fontSize, TextField.fontStyle);
float CharacterWidth = CharInfo.glyphWidth - 1;
float PanelWidth = Panel.GetComponent<RectTransform>().rect.width;
RowLength = (int) (PanelWidth / CharacterWidth);
}

View File

@ -28,6 +28,16 @@ namespace Cyber.Controls {
/// </summary>
public Hologram Hologram;
/// <summary>
/// The text texture that shows the selected item's name.
/// </summary>
public TextTextureApplier ItemNameText;
/// <summary>
/// The text texture that shows the selected item's description.
/// </summary>
public TextTextureApplier ItemDescriptionText;
/// <summary>
/// The item preview mesh.
/// </summary>
@ -197,7 +207,21 @@ namespace Cyber.Controls {
Spinning = true;
}
if (ItemGridSelectedIndex == i) {
SetPreviewMesh(ItemGridCellMeshes[i].mesh);
// Set preview information
SetPreviewMesh(Mesh);
TextTextureProperties NameProps = ItemNameText.TextProperties;
TextTextureProperties DescriptionProps = ItemDescriptionText.TextProperties;
if (Item != null) {
NameProps.Text = Item.Name;
DescriptionProps.Text = Item.Description;
} else {
NameProps.Text = "NULL NAME";
DescriptionProps.Text = "NULL DESC";
}
ItemNameText.SetTextProperties(NameProps);
ItemDescriptionText.SetTextProperties(DescriptionProps);
// Move selector
if ((ItemGridSelector.position - ItemGridCells[i].position).magnitude < 0.01f) {
ItemGridSelector.position = ItemGridCells[i].position;
} else {

View File

@ -0,0 +1,12 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FontUtil : MonoBehaviour {
public static float GetCharacterWidth(Font font, int fontSize, FontStyle fontStyle) {
CharacterInfo CharInfo;
font.RequestCharactersInTexture("W", fontSize, fontStyle);
font.GetCharacterInfo('W', out CharInfo, fontSize, fontStyle);
return CharInfo.glyphWidth - 1;
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 0ab6dbfbebe4b4e11bde0d78e6b3de79
timeCreated: 1494711505
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -31,14 +31,38 @@ namespace Cyber.Util {
}
private Texture2D RenderText(TextTextureProperties text) {
// Set scales
float Scale = 2.0f / text.Width;
Text.text = text.Text.Replace("\\n", "\n");
Text.fontSize = text.FontSize;
Text.characterSize = text.FontSize * Scale * 0.25f;
// Fix newlines
Text.text = text.Text.Replace("\\n", "\n");
float CharacterWidth = FontUtil.GetCharacterWidth(Text.font,
Text.fontSize, Text.fontStyle);
string FixedText = "";
int CutAmount = 0;
for (int i = 0; i < Text.text.Length; i++) {
int RowLength = i - CutAmount;
string Line = Text.text.Substring(CutAmount, RowLength).Trim() + "\n";
int NextWordLength = 0;
if (Text.text[i] == ' ' && i + 1 < Text.text.Length) {
NextWordLength = Text.text.Substring(i + 1).Split(' ')[0].Length;
}
if ((Line.Length + NextWordLength) * CharacterWidth > text.Width - text.OffsetX ||
Text.text[i] == '\n') {
FixedText += Line;
CutAmount = i;
}
}
FixedText += Text.text.Substring(CutAmount).Trim();
Text.text = FixedText;
// Setup render textures
RenderTexture TextTexture = RenderTexture.GetTemporary(text.Width, text.Height);
RenderTexture OldRT = Camera.targetTexture;
// Calculate positions
float OffsetX = -text.Width / 2f;
float OffsetY = -text.Height / 2f;
if (text.Centered) {
@ -48,20 +72,26 @@ namespace Cyber.Util {
Text.anchor = TextAnchor.UpperLeft;
}
Camera.orthographicSize = 1.0f * text.Height / text.Width;
Camera.targetTexture = TextTexture;
Camera.backgroundColor = text.Background;
Camera.transform.localPosition = new Vector3(
-(text.OffsetX + OffsetX) * Scale,
(text.OffsetY + OffsetY) * Scale);
// Setup camera
Camera.targetTexture = TextTexture;
Camera.backgroundColor = text.Background;
// *click*
Camera.Render();
Camera.targetTexture = OldRT;
// Copy the result to a Texture2D
OldRT = RenderTexture.active;
Texture2D Result = new Texture2D(text.Width, text.Height);
RenderTexture.active = TextTexture;
Result.ReadPixels(new Rect(0, 0, Result.width, Result.height), 0, 0);
Result.Apply();
// Clean up
RenderTexture.active = OldRT;
RenderTexture.ReleaseTemporary(TextTexture);