18 changed files with 1848 additions and 482 deletions
|
After Width: | Height: | Size: 8.4 MiB |
@ -0,0 +1,127 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 52c7b9f1bbf0887429d8c6e0c3da2ffb |
||||
|
TextureImporter: |
||||
|
internalIDToNameTable: [] |
||||
|
externalObjects: {} |
||||
|
serializedVersion: 12 |
||||
|
mipmaps: |
||||
|
mipMapMode: 0 |
||||
|
enableMipMap: 0 |
||||
|
sRGBTexture: 1 |
||||
|
linearTexture: 0 |
||||
|
fadeOut: 0 |
||||
|
borderMipMap: 0 |
||||
|
mipMapsPreserveCoverage: 0 |
||||
|
alphaTestReferenceValue: 0.5 |
||||
|
mipMapFadeDistanceStart: 1 |
||||
|
mipMapFadeDistanceEnd: 3 |
||||
|
bumpmap: |
||||
|
convertToNormalMap: 0 |
||||
|
externalNormalMap: 0 |
||||
|
heightScale: 0.25 |
||||
|
normalMapFilter: 0 |
||||
|
flipGreenChannel: 0 |
||||
|
isReadable: 0 |
||||
|
streamingMipmaps: 0 |
||||
|
streamingMipmapsPriority: 0 |
||||
|
vTOnly: 0 |
||||
|
ignoreMipmapLimit: 0 |
||||
|
grayScaleToAlpha: 0 |
||||
|
generateCubemap: 6 |
||||
|
cubemapConvolution: 0 |
||||
|
seamlessCubemap: 0 |
||||
|
textureFormat: 1 |
||||
|
maxTextureSize: 2048 |
||||
|
textureSettings: |
||||
|
serializedVersion: 2 |
||||
|
filterMode: 1 |
||||
|
aniso: 1 |
||||
|
mipBias: 0 |
||||
|
wrapU: 1 |
||||
|
wrapV: 1 |
||||
|
wrapW: 0 |
||||
|
nPOTScale: 0 |
||||
|
lightmap: 0 |
||||
|
compressionQuality: 50 |
||||
|
spriteMode: 1 |
||||
|
spriteExtrude: 1 |
||||
|
spriteMeshType: 1 |
||||
|
alignment: 0 |
||||
|
spritePivot: {x: 0.5, y: 0.5} |
||||
|
spritePixelsToUnits: 100 |
||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0} |
||||
|
spriteGenerateFallbackPhysicsShape: 1 |
||||
|
alphaUsage: 1 |
||||
|
alphaIsTransparency: 1 |
||||
|
spriteTessellationDetail: -1 |
||||
|
textureType: 8 |
||||
|
textureShape: 1 |
||||
|
singleChannelComponent: 0 |
||||
|
flipbookRows: 1 |
||||
|
flipbookColumns: 1 |
||||
|
maxTextureSizeSet: 0 |
||||
|
compressionQualitySet: 0 |
||||
|
textureFormatSet: 0 |
||||
|
ignorePngGamma: 0 |
||||
|
applyGammaDecoding: 0 |
||||
|
swizzle: 50462976 |
||||
|
cookieLightType: 0 |
||||
|
platformSettings: |
||||
|
- serializedVersion: 3 |
||||
|
buildTarget: DefaultTexturePlatform |
||||
|
maxTextureSize: 2048 |
||||
|
resizeAlgorithm: 0 |
||||
|
textureFormat: -1 |
||||
|
textureCompression: 1 |
||||
|
compressionQuality: 50 |
||||
|
crunchedCompression: 0 |
||||
|
allowsAlphaSplitting: 0 |
||||
|
overridden: 0 |
||||
|
ignorePlatformSupport: 0 |
||||
|
androidETC2FallbackOverride: 0 |
||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0 |
||||
|
- serializedVersion: 3 |
||||
|
buildTarget: Standalone |
||||
|
maxTextureSize: 2048 |
||||
|
resizeAlgorithm: 0 |
||||
|
textureFormat: -1 |
||||
|
textureCompression: 1 |
||||
|
compressionQuality: 50 |
||||
|
crunchedCompression: 0 |
||||
|
allowsAlphaSplitting: 0 |
||||
|
overridden: 0 |
||||
|
ignorePlatformSupport: 0 |
||||
|
androidETC2FallbackOverride: 0 |
||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0 |
||||
|
- serializedVersion: 3 |
||||
|
buildTarget: Server |
||||
|
maxTextureSize: 2048 |
||||
|
resizeAlgorithm: 0 |
||||
|
textureFormat: -1 |
||||
|
textureCompression: 1 |
||||
|
compressionQuality: 50 |
||||
|
crunchedCompression: 0 |
||||
|
allowsAlphaSplitting: 0 |
||||
|
overridden: 0 |
||||
|
ignorePlatformSupport: 0 |
||||
|
androidETC2FallbackOverride: 0 |
||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0 |
||||
|
spriteSheet: |
||||
|
serializedVersion: 2 |
||||
|
sprites: [] |
||||
|
outline: [] |
||||
|
physicsShape: [] |
||||
|
bones: [] |
||||
|
spriteID: 5e97eb03825dee720800000000000000 |
||||
|
internalID: 0 |
||||
|
vertices: [] |
||||
|
indices: |
||||
|
edges: [] |
||||
|
weights: [] |
||||
|
secondaryTextures: [] |
||||
|
nameFileIdTable: {} |
||||
|
mipmapLimitGroupName: |
||||
|
pSDRemoveMatte: 0 |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
||||
@ -0,0 +1,7 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 5b07afdbcf13e43438545d591cfd2e4b |
||||
|
DefaultImporter: |
||||
|
externalObjects: {} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
||||
@ -1,27 +0,0 @@ |
|||||
fileFormatVersion: 2 |
|
||||
guid: a94cf6fef2879da4c91e5ef768aadf4e |
|
||||
PluginImporter: |
|
||||
externalObjects: {} |
|
||||
serializedVersion: 2 |
|
||||
iconMap: {} |
|
||||
executionOrder: {} |
|
||||
defineConstraints: [] |
|
||||
isPreloaded: 0 |
|
||||
isOverridable: 0 |
|
||||
isExplicitlyReferenced: 0 |
|
||||
validateReferences: 1 |
|
||||
platformData: |
|
||||
- first: |
|
||||
Any: |
|
||||
second: |
|
||||
enabled: 1 |
|
||||
settings: {} |
|
||||
- first: |
|
||||
Editor: Editor |
|
||||
second: |
|
||||
enabled: 0 |
|
||||
settings: |
|
||||
DefaultValueInitialized: true |
|
||||
userData: |
|
||||
assetBundleName: |
|
||||
assetBundleVariant: |
|
||||
File diff suppressed because it is too large
@ -0,0 +1,236 @@ |
|||||
|
using Cinemachine; |
||||
|
using System; |
||||
|
using System.Collections; |
||||
|
using System.Collections.Generic; |
||||
|
using UnityEngine; |
||||
|
|
||||
|
public class MapCameraCrtl : MonoBehaviour |
||||
|
{ |
||||
|
[Header("虚拟相机")] |
||||
|
public CinemachineVirtualCamera virtualCamera; |
||||
|
[Header("初始位置")] |
||||
|
public Vector3 startPos; |
||||
|
[Header("当前移动输入")] |
||||
|
public float moveX; |
||||
|
public float moveY; |
||||
|
float scrollWheelInput;//滚轮输入
|
||||
|
[Header("移动速度")] |
||||
|
public float moveSpeed; |
||||
|
public float fovSpeed; |
||||
|
[Header("y轴距离限制(视角远近)")] |
||||
|
public float yCloseDistance; |
||||
|
public float yFarDistance; |
||||
|
[Header("平移距离限制")] |
||||
|
public float xMaxMove; |
||||
|
public float xMinMove; |
||||
|
public float yMaxMove; |
||||
|
public float yMinMove; |
||||
|
Vector3 xMaxPos; |
||||
|
Vector3 xMinPos; |
||||
|
Vector3 yMaxPos; |
||||
|
Vector3 yMinPos; |
||||
|
|
||||
|
void Start() |
||||
|
{ |
||||
|
startPos = transform.position; |
||||
|
xMaxPos = transform.position + new Vector3(xMaxMove, 0, 0); |
||||
|
xMinPos = transform.position + new Vector3(xMinMove, 0, 0); |
||||
|
yMaxPos = transform.position + new Vector3(0, yMaxMove, 0); |
||||
|
yMinPos = transform.position + new Vector3(0, yMinMove, 0); |
||||
|
} |
||||
|
|
||||
|
private void LateUpdate() |
||||
|
{ |
||||
|
//按下鼠标中键-移动
|
||||
|
if (Input.GetMouseButton(0)) |
||||
|
{ |
||||
|
moveX = Mathf.Clamp(Input.GetAxis("Mouse X"), -1, 1); |
||||
|
moveY = Mathf.Clamp(Input.GetAxis("Mouse Y"), -1, 1); |
||||
|
|
||||
|
/* if (transform.position.x > xMaxPos.x) |
||||
|
{ |
||||
|
if (moveX < 0) |
||||
|
{ |
||||
|
moveX = 0; |
||||
|
} |
||||
|
} |
||||
|
if (transform.position.x < xMinPos.x) |
||||
|
{ |
||||
|
if (moveX > 0) |
||||
|
{ |
||||
|
moveX = 0; |
||||
|
} |
||||
|
} |
||||
|
if (transform.position.y > yMaxPos.y) |
||||
|
{ |
||||
|
if (moveY < 0) |
||||
|
{ |
||||
|
moveY = 0; |
||||
|
} |
||||
|
} |
||||
|
if (transform.position.y < yMinPos.y) |
||||
|
{ |
||||
|
if (moveY > 0) |
||||
|
{ |
||||
|
moveY = 0; |
||||
|
} |
||||
|
}*/ |
||||
|
float disX = -moveX * Time.deltaTime * moveSpeed; |
||||
|
Vector3 x = Vector3.right * disX; |
||||
|
float preX = ((10 - transform.position.z) * 0.734f + MathF.Abs(transform.position.x) + MathF.Abs(disX)); |
||||
|
if(preX < 7.34) |
||||
|
{ |
||||
|
transform.Translate(x); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
if(transform .position .x <0) |
||||
|
{ |
||||
|
if(disX <0) |
||||
|
{ |
||||
|
transform.position = new Vector3(-7.34f + (10 - transform.position.z) * 0.734f, transform.position.y, transform.position.z); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
transform.Translate(x); |
||||
|
} |
||||
|
} |
||||
|
else if (transform.position.x > 0) |
||||
|
{ |
||||
|
if(disX >0) |
||||
|
{ |
||||
|
transform.position = new Vector3(7.34f - (10 - transform.position.z) * 0.734f, transform.position.y, transform.position.z); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
transform.Translate(x); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
float disY = -moveY * Time.deltaTime * moveSpeed; |
||||
|
Vector3 y = Vector3.up * disY; |
||||
|
float preY = ((10 - transform.position.z) * 0.4f + MathF.Abs(transform.position.y) + MathF.Abs(disY)); |
||||
|
if (preY < 5.5) |
||||
|
{ |
||||
|
transform.Translate(y); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
if (transform.position.y < 0) |
||||
|
{ |
||||
|
if (disY < 0) |
||||
|
{ |
||||
|
transform.position = new Vector3(transform.position.x, -5.5f + (10 - transform.position.z) * 0.4f, transform.position.z); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
transform.Translate(y); |
||||
|
} |
||||
|
} |
||||
|
else if (transform.position.y > 0) |
||||
|
{ |
||||
|
if (disY > 0) |
||||
|
{ |
||||
|
transform.position = new Vector3(transform.position.x, 5.5f - (10 - transform.position.z) * 0.4f, transform.position.z); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
transform.Translate(y); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
//滚轮缩放
|
||||
|
scrollWheelInput = Input.GetAxis("Mouse ScrollWheel"); |
||||
|
float distance = Time.deltaTime * fovSpeed * scrollWheelInput;//一帧移动的距离
|
||||
|
|
||||
|
if (scrollWheelInput > 0f) |
||||
|
{ |
||||
|
// Debug.Log("向上滚动鼠标滚轮");
|
||||
|
if (transform.position.z+distance< yCloseDistance) |
||||
|
{ |
||||
|
transform.position += new Vector3(0, 0, distance); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
transform.position = new Vector3(transform.position.x,transform.position.y, yCloseDistance); |
||||
|
} |
||||
|
} |
||||
|
else if (scrollWheelInput < 0f) |
||||
|
{ |
||||
|
// Debug.Log("向下滚动鼠标滚轮");
|
||||
|
|
||||
|
if (transform.position.z+distance> yFarDistance) |
||||
|
{ |
||||
|
transform.position += new Vector3(0, 0, distance); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
transform.position = new Vector3(transform.position.x, transform.position.y, yFarDistance); |
||||
|
} |
||||
|
//判断是否会出框
|
||||
|
//横向偏移防止图像出框
|
||||
|
float disX = ((MathF.Abs(transform.position.x) + (MathF.Abs(distance) +10- MathF.Abs(transform.position.z)) * 0.734f)); |
||||
|
if(disX>7.43f) |
||||
|
{ |
||||
|
if (transform.position.x < 0) |
||||
|
{ |
||||
|
if (transform.position.x - (0.734f * distance) >= 0) |
||||
|
{ |
||||
|
transform.position = new Vector3(0, transform.position.y, transform.position.z); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
transform.position -= new Vector3(0.734f * distance, 0, 0); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
if (transform.position.x + (0.734f * distance) <= 0) |
||||
|
{ |
||||
|
transform.position = new Vector3(0, transform.position.y, transform.position.z); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
transform.position += new Vector3(0.734f * distance, 0, 0); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
//纵向偏移防止出框
|
||||
|
float disY = ((MathF.Abs(transform.position.y) + (MathF.Abs(distance) + 10 - MathF.Abs(transform.position.z)) * 0.4f)); |
||||
|
if (disY > 5.5f) |
||||
|
{ |
||||
|
if (transform.position.y < 0) |
||||
|
{ |
||||
|
if (transform.position.y - (0.4f * distance) >= 0) |
||||
|
{ |
||||
|
transform.position = new Vector3(transform.position.x, 0, transform.position.z); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
transform.position -= new Vector3(0, 0.4f * distance, 0); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
if (transform.position.y + (0.4f * distance) <= 0) |
||||
|
{ |
||||
|
transform.position = new Vector3(transform.position.x, 0, transform.position.z); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
transform.position += new Vector3(0, 0.4f * distance, 0); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,11 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 6d5f392a3c38cba4cb4ccbb3f40f69f7 |
||||
|
MonoImporter: |
||||
|
externalObjects: {} |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
||||
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue