일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- gameplay tag
- listen server
- 언리얼 엔진
- gameplay effect
- local prediction
- ret2libc
- animation
- CTF
- ability task
- Unreal Engine
- rpc
- Aegis
- Multiplay
- gameplay ability system
- attribute
- 유니티
- 언리얼엔진
- gas
- gravity direction
- 게임개발
- Replication
- unity
- 게임 개발
- os
- map design
- UI
- photon fusion2
- nanite
- MAC
- dirty cow
- Today
- Total
목록유니티 엔진/Fortress Craft (24)
Replicated

파란 버튼 누르면 돈이 충분히 있을 경우 캐슬 스폰 가능 using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;namespace Agit.FortressCraft{ public class SpawnCastleCostManager : MonoBehaviour { public static SpawnCastleCostManager Instance { get; set; } [SerializeField] private Text costText; public List costByLevel = new List(); public int le..

Unit과 Arrow 등 많은 오브젝트에 오브젝트 풀링이 적용되어야 함유니티 프로파일러 써보면 이거 없으면 오브젝트 만들 때마다 부하가 확 심해지는 걸 확인 가능 일단 네트워크 오브젝트는 일반적인 오브젝트 풀링으로 안된다그 이유는 unactive해도 동기화가 안되고 그냥 자기 꺼에서만 꺼지고, 다른 클라이언트의 화면에는 그냥 있기 때문이다즉, SetActive 등의 행위가 RPC로 행해져야 한다 https://doc.photonengine.com/fusion/current/manual/advanced/network-object-provider Fusion 2 NetworkObjectProvider | Photon EngineWhen Spawned is called, the INetworkObjectPro..

우측의 버튼을 누르면 자신에게 할당된 유닛들의 타겟과 공격 가능 설정을 가능RPC로 권한을 가진 메인 클라이언트가 값을 변경하도록 함 이런 구조이게 좀 문제가 있는 구조인데, Target을 싱글톤 패턴으로 매니저 만들어서 그쪽에서 관리를 하게 했어야 한다원래는 Spawner가 플레이어 당 하나만 존재하는 기획이라 이렇게 짜놨는데, 스포너가 여러개가 되면서 코드의 품질이 떨어졌다 using Fusion;using UnityEngine;using UnityEngine.UI;using FusionHelpers;namespace Agit.FortressCraft{ public class ChangeTarget : NetworkBehaviour { private NormalUnitSpawn..

맵이 간단해서 굳이 벨만 포드 등의 길찾기 알고리즘을 쓸 필요가 없음이렇게 생긴 맵이고, 유닛은 가운데에 있는 지역을 움직임가운데애 X 형태의 다리를 건너도록 패스 파인딩을 하면 됨=> 중간에 지점을 하나 넣어주기 정확히 문제가 되는 상황은 무엇이냐?위 이미지처럼 다리 위에서 타겟 세팅을 바꾸는 경우임특정한 지역 (A, B, C, D) 위에선 바뀌어도 상관이 없음어차피 바로 연결되어 갈 수 있기 때문 하지만 다리 위에서는 일직선 상으로 갈 수가 없음⇒ middlePoint를 두고, 현재 유닛 위치를 기준으로 가장 가까운 지역으로 가서 그곳에서 목표지점으로 다시 이동하게 만들면 됨두번째 문제: 가운데 교차하는 다리에서는 어떻게 움직일 것이냐? 교차 지점의 다리에서 middlePoint 지정을 잘못하면 오히..
대미지를 주고 받는 건 AttackCollider, BodyCollider 두가지 스크립트의 상호작용으로 관리 using System.Collections;using System.Collections.Generic;using UnityEngine;using Fusion;namespace Agit.FortressCraft{ public class AttackCollider : NetworkBehaviour { public float Damage { get; set; } public string TargetUnit { get; set; } public string OwnType { get; set; } }}어택 컬라이더에 설정된 대미지가 바디 컬라이더에 ..

대미지를 받았을 때 하얗게 번쩍이는 효과를 주려고 했는데,문제는 스프라이트 렌더러의 색상을 바꿔서는 불가능색상 변화가 더하기 방식이 아니라 곱하기 방식이기 때문에 셰이더를 하나 만들어서 머테리얼을 만들어야 함 Shader "PaintWhite"{ Properties { _MainTex("Particle Texture (Alpha8)", 2D) = "white" { } } Category { Tags { "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent" } Blend SrcAlpha One Cull Off Lighting Off Z..

using Fusion;using UnityEngine;namespace Agit.FortressCraft{ public class NormalUnitGenerator : NetworkBehaviour { private TickTimer spawnTimer { get; set; } public float SpawnTime { get; set; } NormalUnitSpawner spawner; public override void Spawned() { spawner = GetComponent(); SpawnTime = NormalUnitDataManager.Instance.SpawnTime; ..