2023. 4. 3. 11:04
Unity
'Unity' 카테고리의 다른 글
유니티 NavMesh (0) | 2023.07.16 |
---|---|
구글플레이 앱 이전 (0) | 2023.03.06 |
유니티 파티클, 트레일, 라인 렌더러 (0) | 2023.01.21 |
유니티 NavMesh (0) | 2023.07.16 |
---|---|
구글플레이 앱 이전 (0) | 2023.03.06 |
유니티 파티클, 트레일, 라인 렌더러 (0) | 2023.01.21 |
계정 ID와 트랜잭션 ID 찾는법은 하단 참조
계정 ID 찾는법
트랜잭션 아이디는 지메일에서 개발자 등록 당시 냈던 요금의 영수증에서 찾을수 있다
신버전
구버전
휴 제일 큰 고생이 끝났다
이전할 앱을 추가하자
그러면 수신측에서 이런 메일이 온다
요청검토를 눌러주고
마찬가지로 동의 및 이전을 눌러주자
끝
다만 계정이 바뀌어서 그런지 광고 SDK에 문제가 좀 생긴다나 보다
아직 확인은 안 해봄
유니티 애니메이션 관련 (0) | 2023.04.03 |
---|---|
유니티 파티클, 트레일, 라인 렌더러 (0) | 2023.01.21 |
유니티 창위치 설정 (0) | 2022.06.18 |
파티클의 startLifeTime
//읽을때
var startLifetime=particleEffect.main.startLifetime.constant;
//쓸때
var particleEffectMain = particleEffect.main;
var startLifetime = particleEffectMain.startLifetime;
startLifetime.constant = 설정할시간;
particleEffectMain.startLifetime = startLifetime;
파티클 텍스처 변경
var renderer = particle.GetComponent<Renderer>();
renderer.material.mainTexture = sprite.texture;
파티클 데이터 수정
//생성
{
var particleSystem = GetComponent<ParticleSystem>();
var particles = new ParticleSystem.Particle[100];
for (int i = 0; i < particles.Length; i++)
{
particles[i] = new ParticleSystem.Particle();
particles[i].position = new Vector3(0, i * 0.1f, 0);
particles[i].startSize = particleSystem.main.startSize.Evaluate(0);
particles[i].rotation3D = new Vector3(0, i * 10, 0);
}
particleSystem.SetParticles(particles);
}
//읽기
{
var particleSystem = GetComponent<ParticleSystem>();
var particles = new ParticleSystem.Particle[particleSystem.particleCount];
particleSystem.GetParticles(particles);
for (int i = 0; i < particles.Length; i++)
{
Debug.Log($"particles[{i}].position: {particles[i].position}");
Debug.Log($"particles[{i}].rotation3D: {particles[i].rotation3D}");
Debug.DrawLine(particles[i].position, particles[i].position+Quaternion.Euler(particles[i].rotation3D) * Vector3.forward*0.1f);
Debug.DrawLine(particles[i].position, particles[i].position + Quaternion.Euler(particles[i].rotation3D) * Vector3.up * 0.1f);
//Debug.Log($"Quaternion.Euler(particles[{i}].rotation3D): {Quaternion.Euler(particles[i].rotation3D)}");
}
}
//수정
{
var particleSystem = GetComponent<ParticleSystem>();
var particles = new ParticleSystem.Particle[particleSystem.particleCount];
particleSystem.GetParticles(particles);
for (int i = 0; i < particles.Length; i++)
{
particles[i].position = new Vector3(0, i * 0.1f, 0);
}
particleSystem.SetParticles(particles);
}
라인렌더러 좌표를 트랜스폼들 좌표로 설정
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
[CustomEditor(typeof(TransformsLine))]
public class TransformsLineEditor : Editor
{
public override void OnInspectorGUI()
{
base.OnInspectorGUI();//기본 인스펙터를 받아올때
serializedObject.Update();
{
if (GUILayout.Button("Preview"))
{
((FishingLine)target).SetLineRenderer();
}
}
serializedObject.ApplyModifiedProperties();
}
}
#endif
public class TransformsLine : MonoBehaviour
{
public Transform[] transforms;
public LineRenderer lineRenderer;
// Start is called before the first frame update
void Start()
{
lineRenderer = lineRenderer ?? GetComponent<LineRenderer>();
}
// Update is called once per frame
public void SetLineRenderer()
{
if ((lineRenderer != null) && (transforms.Length > 0))
{
lineRenderer.SetPositions(System.Array.ConvertAll(transforms, transform => transform.position));
}
}
// Update is called once per frame
void Update()
{
SetLineRenderer();
}
}
트레일 Positions 구조
//1번라인
(0: (-0.3, 0.7, 0.0))(1: (-0.3, 0.7, 0.0))(2: (-0.4, 0.8, 0.1))
(3: (-0.6, 1.0, 0.4))(4: (-0.5, 1.1, 0.5))(5: (-0.5, 1.2, 0.5))
(6: (-0.5, 1.3, 0.5))(7: (-0.5, 1.3, 0.5))(8: (-0.5, 1.2, 0.6))
(9: (-0.5, 1.0, 0.6))(10: (-0.5, 0.9, 0.6))(11: (-0.5, 0.8, 0.6))
//2번라인
(12: (-0.5, 0.9, 0.7))(13: (-0.5, 0.9, 0.7))(14: (-0.4, 1.0, 0.8))
(15: (-0.4, 1.0, 0.8))(16: (-0.4, 1.0, 0.8))(17: (-0.4, 1.0, 0.8))
(18: (-0.4, 1.1, 0.8))(19: (-0.4, 1.1, 0.8))(20: (-0.4, 1.1, 0.8))
(21: (-0.4, 1.0, 0.9))(22: (-0.4, 1.0, 0.9))(23: (-0.4, 0.9, 0.9))
동일한 좌표를 두번 찍는것으로 시작점을 표현
구글플레이 앱 이전 (0) | 2023.03.06 |
---|---|
유니티 창위치 설정 (0) | 2022.06.18 |
유니티 csv 에셋 (0) | 2022.04.30 |
1:1
2:1 크롭
Shader "Ahzkwid/ScreenOverlay"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
}
SubShader
{
Tags { "RenderType"="Opaque" }
LOD 100
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct v2f
{
float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};
sampler2D _MainTex;
float4 _MainTex_ST;
float4 _MainTex_TexelSize;
v2f vert (appdata v)
{
v2f o;
o.uv = float4(TRANSFORM_TEX(v.uv, _MainTex),1,1);
o.vertex.xy = o.uv;
o.vertex.xy -= 0.5;
o.vertex.xy *= 2;
o.vertex.y = -o.vertex.y;
o.vertex.zw = 1;
return o;
}
fixed4 frag (v2f i) : SV_Target
{
fixed2 uv=i.uv;
float screenWid = _ScreenParams.x / _ScreenParams.y;
float texelWid = _MainTex_TexelSize.z / _MainTex_TexelSize.w;
if(screenWid>texelWid)
{
uv.x*=screenWid;
uv.x -= screenWid / 2;
uv.x += texelWid / 2;
uv.x/=texelWid;
}
else
{
float screenHei = 1/screenWid;
float texelHei = 1/texelWid;
uv.y*=screenHei;
uv.y -= screenHei / 2;
uv.y += texelHei / 2;
uv.y/=texelHei;
}
fixed4 col = tex2D(_MainTex, uv);
col.a*=all(uv==saturate(uv));
return lerp(0,col,col.a);
}
ENDCG
}
}
}
PerlinNoise HLSL (0) | 2023.04.25 |
---|---|
유니티 스카이박스 관련 (0) | 2023.01.16 |
함수 그래프 모음 (0) | 2022.01.15 |
Shader "Skybox/Sample"
{
Properties
{
[NoScaleOffset] _Tex ("Cubemap (HDR)", Cube) = "grey" {}
}
SubShader
{
Tags { "Queue"="Background" "RenderType"="Background" "PreviewType"="Skybox" }
LOD 100
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct v2f
{
float4 vertex : SV_POSITION;
float3 texcoord : TEXCOORD0;
UNITY_VERTEX_OUTPUT_STEREO
};
samplerCUBE _Tex;
half4 _Tex_HDR;
v2f vert (appdata v)
{
v2f o;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
o.vertex = UnityObjectToClipPos(v.vertex);
o.texcoord = v.vertex.xyz;
return o;
}
fixed4 frag (v2f i) : SV_Target
{
half4 tex = texCUBE (_Tex, i.texcoord);
fixed3 col = DecodeHDR (tex, _Tex_HDR);
return half4(col, 1);
}
ENDCG
}
}
}
샘플코드
스크린 오버레이 샘플 (0) | 2023.01.20 |
---|---|
함수 그래프 모음 (0) | 2022.01.15 |
Decal Shader (0) | 2022.01.13 |
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Runtime.InteropServices;
using System;
public class WindowPosition : MonoBehaviour
{
public int x = 0;
public int y = 0;
#if UNITY_STANDALONE_WIN
[DllImport("user32.dll", EntryPoint = "SetWindowPos")]
private static extern bool SetWindowPos(IntPtr hwnd, int hWndInsertAfter, int X, int Y, int cx, int cy, int uFlags);
[DllImport("user32.dll", EntryPoint = "FindWindow")]
public static extern IntPtr FindWindow(string className, string windowName);
public IEnumerator SetWindowPosition(int x, int y)
{
yield return new WaitForEndOfFrame();
yield return new WaitForEndOfFrame();
SetWindowPos(FindWindow(null, Application.productName), 0, x, y, 0, 0, 5);
}
public IEnumerator SetWindowPosition(float x, float y)
{
StartCoroutine(SetWindowPosition(Screen.width * x, Screen.height * y));
yield return null;
}
#endif
// Start is called before the first frame update
void Start()
{
#if UNITY_STANDALONE_WIN
StartCoroutine(SetWindowPosition(x,y));
#endif
}
// Update is called once per frame
void Update()
{
}
}
https://forum.unity.com/threads/setting-player-window-position.534733/
이쪽 소스를 간략화 한 버전으로 만들어봤다
윈도우모드 설정시
유니티 파티클, 트레일, 라인 렌더러 (0) | 2023.01.21 |
---|---|
유니티 csv 에셋 (0) | 2022.04.30 |
유니티 차트 (0) | 2022.04.24 |
https://assetstore.unity.com/packages/tools/integration/csv-serialize-135763
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Demo : MonoBehaviour
{
public Test[] tests;
[System.Serializable]
public class Test
{
public int num = 0;
public string name = "";
}
// Start is called before the first frame update
void Start()
{
var csv = "num,name\n0,\"mom\"\r\n1,dad\n\"2\",\"me\"\n\"3\",\"한국어\"";
tests = CSVSerializer.Deserialize<Test>(csv);
var list = CSVSerializer.ParseCSV(csv);
for (int x = 0; x < list.Count; x++)
{
for (int y = 0; y < list[x].Length; y++)
{
Debug.Log($"[{x}][{y}]{list[x][y]}");
}
}
}
// Update is called once per frame
void Update()
{
}
}
잘된다
유니티 창위치 설정 (0) | 2022.06.18 |
---|---|
유니티 차트 (0) | 2022.04.24 |
유니티 Log 확인 에셋 (0) | 2022.04.23 |